Azure Active Directory シームレス シングル サインオン: 技術的な詳細Azure Active Directory Seamless Single Sign-On: Technical deep dive

この記事では、Azure Active Directory シームレス シングル サインオン (シームレス SSO) 機能の技術的なしくみについて説明します。This article gives you technical details into how the Azure Active Directory Seamless Single Sign-On (Seamless SSO) feature works.

シームレス SSO のしくみHow does Seamless SSO work?

このセクションは、3 つの部分に分かれています。This section has three parts to it:

  1. シームレス SSO 機能の設定。The setup of the Seamless SSO feature.
  2. Web ブラウザーでの 1 人のユーザーのシングル サインイン トランザクションのシームレス SSO での動作。How a single user sign-in transaction on a web browser works with Seamless SSO.
  3. ネイティブ クライアントでの 1 人のユーザーのシングル サインイン トランザクションのシームレス SSO での動作。How a single user sign-in transaction on a native client works with Seamless SSO.

設定のしくみHow does set up work?

シームレス SSO は、こちらで示す通り、Azure AD Connect を使用して有効にできます。Seamless SSO is enabled using Azure AD Connect as shown here. この機能を有効にすると、次の手順が発生します。While enabling the feature, the following steps occur:

  • オンプレミスの Active Directory (AD) で (Azure AD を表す) AZUREADSSOACC という名前のコンピューター アカウントが作成されます。A computer account named AZUREADSSOACC (which represents Azure AD) is created in your on-premises Active Directory (AD).
  • コンピューター アカウントの Kerberos の復号化キーは、Azure AD と安全に共有されます。The computer account's Kerberos decryption key is shared securely with Azure AD.
  • また、Azure AD のサインイン時に使用される 2 つの URL を表す、2 つの Kerberos サービス プリンシパル名 (SPN) も作成されます。In addition, two Kerberos service principal names (SPNs) are created to represent two URLs that are used during Azure AD sign-in.

注意

(Azure AD Connect を使用して) Azure AD と同期する各 AD フォレストとシームレス SSO を有効にするユーザー用に、コンピューター アカウントと Kerberos SPN が作成されます。The computer account and the Kerberos SPNs are created in each AD forest you synchronize to Azure AD (using Azure AD Connect) and for whose users you want Seamless SSO. 同じ方法で管理され削除されないことを保証するために、その他のコンピューター アカウントが格納されている AZUREADSSOACC コンピューター アカウントに、組織単位 (OU) が移動されます。Move the AZUREADSSOACC computer account to an Organization Unit (OU) where other computer accounts are stored to ensure that it is managed in the same way and is not deleted.

重要

少なくとも 30 日ごとに、AZUREADSSOACC コンピューター アカウントの Kerberos の復号化キーをロールオーバーすることを強くお勧めします。We highly recommend that you roll over the Kerberos decryption key of the AZUREADSSOACC computer account at least every 30 days.

このセットアップが完了すると、シームレス SSO は、統合 Windows 認証 (IWA) を使用するその他のサインインと同様に機能します。Once the set-up is complete, Seamless SSO works the same way as any other sign-in that uses Integrated Windows Authentication (IWA).

Web ブラウザーでのシームレス SSO によるサインインのしくみHow does sign-in on a web browser with Seamless SSO work?

Web ブラウザーでのサインインのフローは次のとおりです。The sign-in flow on a web browser is as follows:

  1. ユーザーは、web のアプリケーション(たとえば、outlook Web アプリケーションに)、https://outlook.office365.com/owa/)企業ネットワーク内のドメインに参加している、会社のデバイスからアクセスします。The user tries to access a web application (for example, the Outlook Web App - https://outlook.office365.com/owa/) from a domain-joined corporate device inside your corporate network.
  2. まだサインインしていない場合、ユーザーは、Azure AD のサインイン ページにリダイレクトされます。If the user is not already signed in, the user is redirected to the Azure AD sign-in page.
  3. ユーザーが、Azure AD サインイン ページにユーザー名を入力します。The user types in their user name into the Azure AD sign-in page.

    注意

    特定のアプリケーションでは、手順 2. と 3. をスキップします。For certain applications, steps 2 & 3 are skipped.

  4. Azure AD が JavaScript をバックグラウンドで使用して、Kerberos チケットを提供するよう、401 認証エラーを通じてクライアントに要求します。Using JavaScript in the background, Azure AD challenges the browser, via a 401 Unauthorized response, to provide a Kerberos ticket.

  5. ブラウザーは、代わりに Active Directory から (Azure AD を表す) AZUREADSSOACC コンピューター アカウント用にチケットを要求します。The browser, in turn, requests a ticket from Active Directory for the AZUREADSSOACC computer account (which represents Azure AD).
  6. Active Directory がコンピューター アカウントを検索し、コンピューター アカウントのシークレットで暗号化された Kerberos チケットをブラウザーに返します。Active Directory locates the computer account and returns a Kerberos ticket to the browser encrypted with the computer account's secret.
  7. ブラウザーは、Active Directory から取得した Kerberos チケットを Azure AD に転送します。The browser forwards the Kerberos ticket it acquired from Active Directory to Azure AD.
  8. Azure AD が、会社のデバイスにサインインしているユーザーの ID を含む Kerberos チケットを以前に共有していたキーを使用して解読します。Azure AD decrypts the Kerberos ticket, which includes the identity of the user signed into the corporate device, using the previously shared key.
  9. 評価後、Azure AD はアプリケーションにトークンを返すか、多要素認証などの他の検査を実行するようユーザーに要求します。After evaluation, Azure AD either returns a token back to the application or asks the user to perform additional proofs, such as Multi-Factor Authentication.
  10. ユーザーのサインインが成功すると、アプリケーションにアクセスできるようになります。If the user sign-in is successful, the user is able to access the application.

次の図に、すべてのコンポーネントと必要な手順を示します。The following diagram illustrates all the components and the steps involved.

シームレス シングル サインオン - Web アプリのフロー

シームレス SSO は便宜的であり、何らかの理由で失敗した場合、サインイン エクスペリエンスはその通常の動作に戻ります。つまり、ユーザーはサインインするためにパスワードを入力する必要があります。Seamless SSO is opportunistic, which means if it fails, the sign-in experience falls back to its regular behavior - i.e, the user needs to enter their password to sign in.

ネイティブ クライアントでのシームレス SSO によるサインインのしくみHow does sign-in on a native client with Seamless SSO work?

ネイティブ クライアントでのサインインのフローは次のとおりです。The sign-in flow on a native client is as follows:

  1. ユーザーは、(Outlook クライアントなどの) ネイティブ アプリケーションに企業ネットワーク内のドメインに参加している会社のデバイスからアクセスします。The user tries to access a native application (for example, the Outlook client) from a domain-joined corporate device inside your corporate network.
  2. ユーザーがまだサインインしていない場合は、ネイティブ アプリケーションが、デバイスの Windows セッションからそのユーザーのユーザー名を取得します。If the user is not already signed in, the native application retrieves the username of the user from the device's Windows session.
  3. アプリが、Azure AD にユーザー名を送信し、テナントの WS-Trust MEX エンドポイントを取得します。The app sends the username to Azure AD, and retrieves your tenant's WS-Trust MEX endpoint.
  4. 次にアプリは、統合認証エンドポイントが使用可能かどうかを確認するために、WS-Trust MEX エンドポイントにクエリを実行します。The app then queries the WS-Trust MEX endpoint to see if integrated authentication endpoint is available.
  5. 手順 4. が成功した場合は、Kerberos チャレンジが発行されます。If step 4 succeeds, a Kerberos challenge is issued.
  6. アプリが Kerberos チケットを取得できる場合は、Azure AD の統合認証エンドポイントにそのチケットを転送します。If the app is able to retrieve the Kerberos ticket, it forwards it up to Azure AD's integrated authentication endpoint.
  7. Azure AD が Kerberos チケットを復号化して検証します。Azure AD decrypts the Kerberos ticket and validates it.
  8. Azure AD は、ユーザーをサインインさせ、アプリに SAML トークンを発行します。Azure AD signs the user in, and issues a SAML token to the app.
  9. アプリは、Azure AD の OAuth2 トークン エンドポイントに SAML トークンを送信します。The app then submits the SAML token to Azure AD's OAuth2 token endpoint.
  10. Azure AD は SAML トークンを検証し、指定されたリソースのアクセス トークンおよび更新トークンと、ID トークンをアプリに発行します。Azure AD validates the SAML token, and issues to the app an access token and a refresh token for the specified resource, and an id token.
  11. ユーザーは、アプリのリソースにアクセスできます。The user gets access to the app's resource.

次の図に、すべてのコンポーネントと必要な手順を示します。The following diagram illustrates all the components and the steps involved.

シームレス シングル サインオン - ネイティブ アプリ フロー

次の手順Next steps