Dynamics 365 開発環境デプロイエラー対策(エラー:AADSTS50011)
事象
利用中のDynamics 365 開発環境は、LCSのステータスが [失敗] に伴い、以下のインフォメーションが表示されてしまい、対象D365開発環境への接続もできなくなります。
アクションが必要です:AADテナントが展開レコードと一致しません。これは返信URLの不一致による認証失敗の原因になります。
上記画面以外、以下の通知メールが送信される場合もあります。
Action required: Resolve an issue in your Microsoft Dynamics 365 environment
原因
クラウドホスト環境の管理者を変更するプロビジョニング ツールを利用したことが要因であると考えられます。
対策
対策については、環境の再デプロイが一番簡単ですが、既存の環境を削除して再デプロイできない場合は困るため、コマンドの実行により、URL を構成済 Azure AD テナントに追加する対処方法もあります。
※本記事では、後者のコマンド実行により、URL を構成済 Azure AD テナントに追加する手順を記載します。
1.対象D365 開発環境のVMにログインし、以下のルートよりweb.config ファイルをローカルPCへコピーします。
2.web.configファイルから次の値を取得します。
$AADTenant = <Value of Aad.TenantDomainGUID from web.config>
$EnvironmentUrl = <Value of Infrastructure.HostUrl from web.config>
# For example, if value is spn:fd663e81-110e-4c18-8995-ddf534bcf5e1 then take only fd663e81-110e-4c18-8995-ddf534bcf5e1
$AADRealm = <Value of Aad.Realm from web.config without spn: prefix. >
3.web.configファイルのAzureADテナントのテナント管理者アカウントを介して次のコマンドを実行します。
# Using tenant admin account under this tenant login to via AzureAD PowerShell cmdlet.
Connect-AzureAD
※モジュールがインストールされてない場合、先にインストールしてください。
Azure Active Directory の PowerShell モジュール | Japan Azure Identity Support Blog
# Get Service Principal details
$SP = Get-AzureADServicePrincipal -Filter "AppId eq '$AADRealm'"
#Add Reply URLs
$SP.ReplyUrls.Add("$EnvironmentUrl")
$SP.ReplyUrls.Add("$EnvironmentUrl/oauth")
#Set/Update Reply URL
Set-AzureADServicePrincipal -ObjectId $SP.ObjectId -ReplyUrls $SP.ReplyUrls
例:)
※コマンドの実行後、LCS より環境の再起動を行う必要もあり、設定の反映が最大2時間まで掛かる場合もあります。
※上記一連の操作を行っても、まだD365環境へ接続できない場合、開かれているすべてのブラウザを閉じて、一度キャッシュクリアをしてから再接続か、シークレットウィンドから接続できるようになります。
<参考>
Title : 開発環境の配置とアクセス - 環境が失敗した状態の場合、またはサインイン エラーが発生している場合に、既存の環境をどのように修正しますか?