<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M74D8PB" height="0" width="0" style="display:none;visibility:hidden">
Loading
ナビゲーションへスキップメインコンテンツへスキップ

Microsoft Office 365のシングルサインオン中のエラー「AADSTS51004 The user account does not exist in the directory(ユーザーアカウントがディレクトリーに存在しません)」

Single Sign-On
Okta Classic Engine

Overview

この記事では、OktaとOffice 365間のシングルサインオン(SSO)フロー中に発生する特定のエラーの解決について説明します。次のようなエラーメッセージが表示されることがあります:

AADSTS51004: The user account <id> does not exist in the <id> directory. To sign into this application, the account must be added to the directory.(AADSTS51004:ユーザーアカウント<id>がディレクトリー<id>に存在しません。このアプリケーションにサインインするには、アカウントをディレクトリーに追加する必要があります。)
 

Applies To

  • Microsoft Office 365を使用する管理者
  • フェデレーション(WS-FED)
  • シングルサインオン(SSO)

Cause

このエラーは、Microsoft Office 365ユーザーのEntra IDのImmutableIDがOktaで構成されたImmutableIDと一致しない場合に発生します。

Solution

Entra IDでImmutableIDを検証

  1. Windows PowerShellを開きます。
  2. 次のコマンドを使用してMicrosoft Graphに接続します:Connect-MgGraph -Scopes Directory.AccessAsUser.All

注:Microsoft Graphがまだインストールされていない場合は、インストールする必要があります。Microsoftのドキュメント:『Install the Microsoft Graph PowerShell SDK』

connect.png

  1. 以下のコマンドを実行して、該当するユーザーのImmutableIDが欠如しているかどうかを検証します(<user@domain.tld>をユーザーのUPNに変更してください):

Get-MgUser -UserId <user@domain.tld> -Property OnPremisesImmutableId |Format-List OnPremisesImmutableId.  

値が空白の場合は、ImmutableIDが欠如していることを示します。

immutableID.png

     

     

    解決策1:ImmutableIDはOktaでは利用可能だが、Entra IDでは欠如している

    以下のコマンドを使って、影響を受けるユーザーのImmutableIDを設定します(<user@domain.tld> をユーザーのUPNに、<ImmutableId>を新しいImmutableIdに置き換えてください):

    Update-MgUser -UserId user1.test0000@secura.one -OnPremisesImmutableId <ImmutableId>

    immutableid.png 

     

     

    解決策2:ImmutableIDはEntra IDで利用可能で、Active DirectoryはOktaで使用される

    Active Directoryが使用される場合、マッピングをチェックし、値がActive Directoryによって入力されるかどうかを検証します。
    Okta管理者ダッシュボード >[Profile Editor(プロフィールエディター)]>[Office 365 instance(Office 365インスタンス)]>[マッピング]>[Okta]>[Office 365]に、
    以下の式が表示されます。

    hasDirectoryUser()?findDirectoryUser().externalId:null >immutableId

    Screenshot 2023-08-25 at 19.58.05.png

      次に、アプリケーションのユーザー名プロファイル(この場合はOffice 365)に同じ値が入力されていることを確認します。
      この値がActive DirectoryのexternalIdと一致しない場合、ユーザーを再割り当てすると値が新しくなります。

      注:ユーザーの割り当て解除/再割り当て時には、[ユーザーの非アクティブ化]が有効になっていないことを確認してください。

       

       

      解決策3:ImmutableIDはEntra IDで利用可能で、Active DirectoryはOktaでは使用されない

      このシナリオでは、Active Directoryがソースとして使用されず、オブジェクトGUID(外部ID)がimmutableIDにマッピングされません。
      OktaユーザーIDがimmutableIDのマッピング値として使用されるのが、推奨されるベストプラクティスです。これはOktaユーザーIDがユーザーのライフサイクルを通じた不変の値であるためです。
      以下の式を使用し、マッピングを適宜調整する必要があります。

      user.getInternalProperty("id")
      Screenshot 2023-08-26 at 00.26.12.png



       

      関連資料

       

       
       
      読み込み中
      Microsoft Office 365のシングルサインオン中のエラー「AADSTS51004 The user account does not exist in the directory(ユーザーアカウントがディレクトリーに存在しません)」 | Okta Support