> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 概要

> 社内アプリ、ISV アプリ、管理バックエンドでサイレントログインを実装し、ユーザー認証を自動化する手順を説明します

「サイレントログイン」とは、ユーザーがアプリに入った後、DingTalk のユーザー名とパスワードを入力せずに、アプリケーションが現在のユーザーの ID を自動的に取得し、その ID でシステムにログインするフローを指します。サイレントログインの仕組みを利用することで、開発者はシームレスな認証体験を実現し、ユーザーの利便性と安全性を向上させることができます。

## 適用対象

本ドキュメントは、以下のタイプのアプリ開発者を対象とします。

* **社内アプリ**：企業が独自に開発し、自社の社員のみが利用するアプリ。
* **サードパーティ社内アプリ（ISV アプリ）**：サードパーティサービスプロバイダーが開発し、複数の企業顧客にインストール・利用を提供する SaaS タイプのアプリ。
* **アプリ管理バックエンドシステム**：組織管理者が DingTalk 管理バックエンドから直接アクセスする必要がある設定・管理システム。

## サポートされるサイレントログインのシナリオ

* Web アプリ（H5 マイクロアプリ）のサイレントログイン
* アプリ管理バックエンドのサイレントログイン
* Web 方式でアプリにログインする実装（サードパーティ Web サイトへのログイン）

  * ブラウザ内での実装

    * QRコードでログイン
    * DingTalk アカウントとパスワードでログイン

## 社内アプリのサイレントログイン

企業の開発者が社内アプリを開発した場合、企業の社員は DingTalk 内でそのアプリを利用する際、アカウントとパスワードを入力することなく、開発したシステムへ自動的にログインできます。

サイレントログインの手順について、詳しくは Web アプリ（H5 マイクロアプリ）のサイレントログインを参照してください。

| 手順                         | 説明                                                                                                                                |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 手順 1：サイレントログイン用認可コードを取得する。 | PC 版ではミニプログラム開発は現在サポートされていません。PC 版アプリを開発する場合は、**マイクロアプリ開発**方式を使用する必要があります。                                                        |
| 手順 2：access\_token を取得する。  | API [社内アプリのアクセストークンを取得する](/ja/open/development/obtain-the-access-token-of-an-internal-app)を呼び出します。                                |
| 手順 3：ユーザーの userid を取得する。   | API [サイレントログインコードでユーザー情報を取得する](/ja/open/development/obtain-the-userid-of-a-user-by-using-the-log-free)を呼び出して、ユーザーの userid を取得します。 |
| 手順 4：ユーザー詳細を取得する。          | API [ユーザー詳細を照会する](/ja/open/development/query-user-details)を呼び出して、ユーザーの詳細情報を取得します。                                                 |

| 手順                        | 説明                                                                                                                                |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 手順 1：サイレントログイン用認可コードを取得する | PC 版ではミニプログラム開発は現在サポートされていません。PC 版アプリを開発する場合は、**マイクロアプリ開発**方式を使用する必要があります。                                                        |
| 手順 2：access\_token を取得する  | API を呼び出して、サードパーティアプリの認可企業のアクセストークンを取得します。                                                                                        |
| 手順 3：ユーザーの userid を取得する。  | API [サイレントログインコードでユーザー情報を取得する](/ja/open/development/obtain-the-userid-of-a-user-by-using-the-log-free)を呼び出して、ユーザーの userid を取得します。 |
| 手順 4：ユーザー詳細を取得する。         | API [ユーザー詳細を照会する](/ja/open/development/query-user-details)を呼び出して、ユーザーの詳細情報を取得します。                                                 |

## アプリ管理バックエンドのサイレントログイン

開発したアプリで、組織管理者が [DingTalk 管理バックエンド](https://oa.dingtalk.io/)からアプリの設定や管理機能を行う必要がある場合、アプリのバックエンド管理システムを開発する必要があります。管理者が [DingTalk 管理バックエンド](https://oa.dingtalk.io/)でアプリ管理バックエンドをクリックするだけで、アカウントとパスワードを入力することなく、お客様のアプリ管理バックエンドシステムへ自動的にログインできます。

サイレントログインの手順について、詳しくはアプリ管理バックエンドのサイレントログインを参照してください。

| 手順                                             | 説明                                                                                                                                                                                      |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 手順 1：サイレントログイン用認可コードを取得する。                     | 組織管理者が [DingTalk 管理バックエンド](http://oa.dingtalk.io/)にログイン後、**ワークベンチ**内のアプリをクリックすると、アプリのバックエンドアドレスへ自動的にリダイレクトされ、DingTalk は code パラメータをその URL アドレスに付加します。code パラメータの値を保存してください。後続の手順で使用します。 |
| 手順 2：アプリバックエンドのサイレントログイン用 access\_token を取得する。 | API を呼び出してマイクロアプリバックエンドのサイレントログイン用アクセストークンを取得し、アプリバックエンドのサイレントログイン用 access\_token を取得します。                                                                                               |
| 手順 3：アプリ管理者の ID 情報を取得する。                       | **手順 1** で取得した code と **手順 2** で取得した access\_token を用いて、アプリ管理者の ID 情報を取得します。詳細は、アプリ管理バックエンドのサイレントログインのユーザー情報を取得するを参照してください。                                                             |
