クラウドの成長に伴い、多くの企業は、さまざまなアプリやサービスに Microsoft Entra ID を使用するように移行しました。 Microsoft Entra ID とのフェデレーションは、多くの組織との標準的なプラクティスになりました。 この記事では、このフェデレーションで発生する問題のトラブルシューティングの一部について説明します。 一般的なトラブルシューティング記事のいくつかのトピックは、Azure とのフェデレーションに関連しているため、この記事では、Microsoft Entra ID と Active Directory フェデレーション サービス (AD FS) の相互作用に関する詳細について説明します。
AD FS へのリダイレクト
リダイレクトは、Office 365 などのアプリケーションにサインインし、サインインするために組織の AD FS サーバーにリダイレクトされるときに発生します。
最初に確認すべきこと
リダイレクトが発生しない場合は、いくつかの点を確認する必要があります。
Microsoft Entra テナントでフェデレーションが有効になっていることを確認します。 Azure portal にサインインし、 Microsoft Entra Connect の下を確認します。
カスタム ドメインが検証されていることを確認します。 Azure portal の [ フェデレーション ] の横にあるドメインを選択します。
ドメイン ネーム システム (DNS) を確認し、AD FS サーバーまたは Web アプリケーション プロキシ サーバーがインターネットから解決されていることを確認します。 それらが解決され、それにアクセスできることを確認します。
PowerShell コマンドレット
Get-MgDomain
を使用して、この情報を取得することもできます。
"不明な認証方法" エラーが表示される
Azure からリダイレクトされるときに、AD FS またはセキュリティ トークン サービス (STS) レベルで AuthnContext
がサポートされていないことを示す "不明な認証方法" エラーが発生する場合があります。
このシナリオは、Microsoft Entra ID が認証方法を適用するパラメーターを使用して AD FS または STS にリダイレクトする場合に最も一般的です。
認証方法を適用するには、次のいずれかの方法を使用します。
WS-Federation の場合は、WAUTH クエリ文字列を使用して、優先認証方法を強制します。
SAML 2.0 の場合は、次のコードを使用します。
<saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext>
適用された認証方法が正しくない値で送信された場合、またはその認証方法が AD FS または STS でサポートされていない場合は、認証される前にエラー メッセージが表示されます。
必要な認証方法 | WAUTH URI |
---|---|
ユーザー名とパスワード認証 | urn:oasis:names:tc:SAML:1.0:am:password |
Secure Sockets Layer (SSL) クライアント認証 | urn:ietf:rfc:2246 |
Windows 統合認証 | urn:federation:authentication:windows |
次の表に、サポートされている SAML 認証コンテキスト クラスの一覧を示します。
認証方法 | 認証コンテキスト クラス URI |
---|---|
ユーザー名とパスワード | urn:oasis:names:tc:SAML:2.0:ac:classes:Password |
パスワードで保護されたトランスポート | urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport |
トランスポート層セキュリティ (TLS) クライアント | urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient |
X.509 証明書 | urn:oasis:names:tc:SAML:2.0:ac:classes:X509 |
統合 Windows 認証 | urn:federation:authentication:windows |
Kerberos | urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos |
認証方法が AD FS レベルでサポートされていることを確認するには、次のことを確認します。
AD FS 2.0 (英語)
/adfs/ls/web.configで、認証の種類のエントリが存在することを確認します。
<microsoft.identityServer.web>
<localAuthenticationTypes>
<add name="Forms" page="FormsSignIn.aspx" />
<add name="Integrated" page="auth/integrated/" />
<add name="TlsClient" page="auth/sslclient/" />
<add name="Basic" page="auth/basic/" />
</localAuthenticationTypes>
AD FS 2012 R2
[AD FS 管理] で、AD FS スナップインで [認証ポリシー] を選択します。
[ プライマリ認証 ] セクションの [ グローバル設定] の横にある [編集] を選択 します。 [ 認証ポリシー ] を右クリックし、[ グローバル プライマリ認証の編集] を選択することもできます。 または、[ 操作] ウィンドウで、[ グローバル プライマリ認証の編集] を選択します。
[ グローバル認証ポリシーの編集 ] ウィンドウの [ プライマリ ] タブで、グローバル認証ポリシーの一部として設定を構成できます。 たとえば、プライマリ認証の場合は、[ エクストラネット ] と [イントラネット] で使用可能な認証方法を選択 します。
必要な認証方法のチェック ボックスがオンになっていることを確認します。
AD FS 2016 (英語)
[AD FS 管理] で、AD FS スナップインで [サービス>認証方法] を選択します。
[ プライマリ認証 ] セクションで、[ 編集] を選択します。
[ 認証方法の編集 ] ウィンドウの [ プライマリ ] タブで、認証ポリシーの一部として設定を構成できます。
AD FS によって発行されたトークン
このセクションでは、AD FS によって発行されるトークンについて説明します。
トークンの発行後に Microsoft Entra ID がエラーをスローする
AD FS がトークンを発行すると、Microsoft Entra ID からエラーがスローされることがあります。 このような場合は、次の問題を確認します。
AD FS がトークンで発行する要求は、Microsoft Entra ID のユーザーのそれぞれの属性と一致する必要があります。
Microsoft Entra ID のトークンには、次の必須要求が含まれている必要があります。
WSFEDの:
- UPN: この要求の値は、Microsoft Entra ID のユーザーのユーザー プリンシパル名 (UPN) と一致する必要があります。
-
ImmutableID: この要求の値は、Microsoft Entra ID のユーザーの
sourceAnchor
またはImmutableID
属性と一致する必要があります。
Microsoft Entra ID で
User
属性値を取得するには、次のコマンド ラインを実行します。Get-AzureADUser –UserPrincipalName <UPN>
SAML 2.0:
- IDPEmail: この要求の値は、Microsoft Entra ID のユーザーの UPN と一致する必要があります。
-
NAMEID: この要求の値は、Microsoft Entra ID のユーザーの
sourceAnchor
またはImmutableID
属性と一致する必要があります。
詳細については、「 SAML 2.0 ID プロバイダーを使用してシングル サインオンを実装する」を参照してください。
AD FS と Microsoft Entra ID の間のトークン署名証明書の不一致
AD FS は、トークン署名証明書を使用して、ユーザーまたはアプリケーションに送信されるトークンに署名します。 AD FS と Microsoft Entra ID の間の信頼は、このトークン署名証明書に基づくフェデレーション信頼です。
AD FS 側のトークン署名証明書が自動証明書ロールオーバーまたは何らかの介入によって変更された場合は、フェデレーション ドメインの Microsoft Entra ID 側で新しい証明書の詳細を更新する必要があります。 AD FS のプライマリ トークン署名証明書が Microsoft Entra ID と異なる場合、Microsoft Entra ID は AD FS によって発行されたトークンを信頼しません。 このため、フェデレーション ユーザーはサインインできません。
この問題を解決するには、「 Office 365 と Microsoft Entra ID のフェデレーション証明書を更新する」の手順に従います。
その他の一般的な確認事項
AD FS と Microsoft Entra の対話に問題がある場合は、次のことを確認してください。
- Windows Credential Manager の古いまたはキャッシュされた資格情報。
- Office 365 の証明書利用者信頼で構成されているセキュア ハッシュ アルゴリズム (SHA) が SHA1 に設定されていること。