SSOは既定ドメインではできないため、AzureADにカスタムドメインを登録しておく必要があります。

EVECLOUDへのアプリケーション追加と準備

  1. はじめに、登録の際に必要なファイルを準備します。以下のURLを開き、保存しておきます。
    https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml
  2. 管理ツールの[アプリケーションの管理]ページにてアプリケーションの登録を行います。登録の際、[アプリケーションの種類]は[SAML]を選択します。
    登録方法の詳細は「アプリケーションの管理>アプリケーションの登録」を参照してください。
  3. 「アプリケーションの管理」のリストにて、作成したアプリケーション「Microsoft 365」を選択し、設定画面を開きます。
  4. [Service Provider] タブを開き、「サービスプロバイダーのメタデータをインポートする」にチェックを入ます。[ファイル選択]ボタンをクリック後、先ほど準備しておいたxml ファイルを選択します。
  5. [SSO設定] タブから、必要に応じてSSOに関する設定を行ってください。
    詳細は「アプリケーションの管理>共通の設定項目」を参照してください。
  6. すべての設定を終えたら[保存]ボタンをクリックして登録します。

アプリケーションへの認証セット設定

アプリケーションへの認証セットはグループ単位で行います。
グループ管理から該当のグループを選択し、[グループの認証方法]タブにて対象のアプリケーションを選択し設定を行います。
設定方法の詳細は「アプリケーションの管理>アプリケーションへの認証セット設定」を参照してください。

Microsoft 365側の設定

Microsoft Graph PowerShell SDKのインストール
  1. Microsoft Graph PowerShell SDKをインストールしていきます。
    Powershellを管理者権限で立ち上げ、以下のコマンドを実行します。
    インストール完了までに数分掛かります。
    PS C:\WINDOWS\system32> Install-Module Microsoft.Graph
    
    続行するには NuGet プロバイダーが必要です
    PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
    プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
    'C:\Users\sugimoto_kazuki.KIRK\AppData\Local\PackageManagement\ProviderAssemblies'
    に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGetプロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
    プロバイダーをインストールしてインポートしますか?
    [Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
    
    信頼されていないリポジトリ
    信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSRepository コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
    からモジュールをインストールしますか?
    [Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y
  2. インストール完了の確認は以下のコマンドで行います。
    PS C:\WINDOWS\system32> Get-InstalledModule Microsoft.Graph
    
    Version    Name                                Repository           Description
    -------    ----                                ----------           -----------
    2.15.0     Microsoft.Graph                     PSGallery            Microsoft Graph PowerShell module
フェデレーション設定
  1. 下記コマンドでMicrosoft Graphへ接続します。
    接続する際にMicrosoftアカウントのログイン画面とアクセス許可要求が表示されますのでAzureADで管理しているユーザでログインしてくさださい。
       PS C:\WINDOWS\system32> Connect-MgGraph -Scopes "Domain.ReadWrite.All","Directory.AccessAsUser.All"
       Welcome To Microsoft Graph!
  2. 下記のコマンドでMicrosoft 365側にフェデレーションの設定を追加します。各パラメータ値については、設定する環境の値に変更してください。
      $dom = "magatamademo2.dds.nagoya"
      $LogOnUrl = "https://saml.dds.click/saml/dds/sso/70009"
      $LogOffUrl = "https://saml.dds.click/saml/dds/slo/70009"
      $MetadataUrl = "https://saml.dds.click/saml/dds/metadata/70009"
      $MySigningCert =   "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      $uri = "https://saml.dds.click/saml/dds/metadata/70009"
      $Protocol = "saml"
    
      New-MgDomainFederationConfiguration `
       -DomainId $dom `
       -IssuerUri $uri `
       -SignOutUri $LogOffUrl `
       -PassiveSignInUri $LogOnUrl `
       -MetadataExchangeUri $MetadataUrl `
       -SigningCertificate $MySigningCert `
       -FederatedIdpMfaBehavior "acceptIfMfaDoneByFederatedIdp" `
       -PreferredAuthenticationProtocol $Protocol
    パラメータ詳細
    引数内容
    DomainId対象となるカスタムドメインです。
    既定ドメイン(onmicrosoft.com)はSAML連携に使用できません。
    IssuerUriSAML IdPのIssuerとなるURLです。
    EVECLOUDのアプリケーションページのメタデータURLを記載します。
    SignOutUriログアウト時に使用するURLです。
    EVECLOUDのアプリケーションページのログアウトURLを記載します。
    PassiveSignInUriログイン時にSAMLRequestを送るURLです。
    EVECLOUDのアプリケーションページのSSO URLを記載します。
    MetadataExchangeUriIdP側のメタデータのURLです。
    EVECLOUDのアプリケーションページのメタデータURLを記載します。
    SigningCertificate署名検証に使用する、IdP側のX509証明書です。
    EVECLOUDのアプリケーションページの「X.509証明書のダウンロード」ボタンを押下してダウンロードしたファイルの内容を記載します。
    FederatedIdpMfaBehavioracceptIfMfaDoneByFederatedIdpを記載します。
    https://learn.microsoft.com/ja-jp/graph/api/resources/internaldomainfederation?view=graph-rest-1.0#federatedidpmfabehavior-values
    PreferredAuthenticationProtocol"saml"と指定します。
  3. Get-MgDomainコマンドでカスタムドメインにフェデレーションが設定されているか確認できます。以下のように、AuthenticationTypeが Federated になっていればフェデレーションが設定されていることになります。設定されていなければManagedと表示されます。
      > Get-MgDomain
    Id AuthenticationType AvailabilityStatus IsAdminManaged IsDefault IsInitial IsRoot IsVerified Manufacturer Model PasswordNotificationWindowInDays PasswordValidityPeriodInDays
    -- ------------------ ------------------ -------------- --------- --------- ------ ---------- ------------ ----- -------------------------------- ----------------------------
    magatamademo2.dds.nagoya Federated True False False True True 14 730
    magatamademo3.dds-dev.space Federated True False False True True
    ddsdev.onmicrosoft.com Managed True True True True True 14 730

    また、Get-MgDomainFederationConfigurationを使うとカスタムドメインの設定詳細を確認できます。
      > Get-MgDomainFederationConfiguration -DomainId magatamademo2.dds.nagoya | Format-List
    ActiveSignInUri :
    DisplayName :
    FederatedIdpMfaBehavior : acceptIfMfaDoneByFederatedIdp
    Id : cc824730-90ef-480f-b1e7-807333150b68
    IsSignedAuthenticationRequestRequired :
    IssuerUri : https://saml.dds.click/saml/dds/metadata/70009
    MetadataExchangeUri : https://saml.dds.click/saml/dds/metadata/70009
    NextSigningCertificate :
    PassiveSignInUri : https://saml.dds.click/saml/dds/sso/70009
    PreferredAuthenticationProtocol : saml
    PromptLoginBehavior :
    SignOutUri : https://saml.dds.click/saml/dds/slo/70009
    SigningCertificate : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    SigningCertificateUpdateStatus : Microsoft.Graph.PowerShell.Models.MicrosoftGraphSigningCertificateUpdateStatus
    AdditionalProperties : {}
フェデレーションの無効化

フェデレーションを無効化するには、 Update-MgDomainを使用します。

  1. DomainIdにカスタムドメイン名を設定し、AuthenticationTypeをManagedとすることでフェデレーションを無効にできます。
    > Update-MgDomain -DomainId "magatamademo2.dds.nagoya" -AuthenticationType "Managed"
  2. Get-MgDomainでフェデレーションが無効(Managed)になっていることを確認できます。
    > Get-MgDomain
    Id AuthenticationType AvailabilityStatus IsAdminManaged IsDefault IsInitial IsRoot IsVerified Manufacturer Model PasswordNotificationWindowInDays PasswordValidityPeriodInDays
    -- ------------------ ------------------ -------------- --------- --------- ------ ---------- ------------ ----- -------------------------------- ----------------------------
    magatamademo2.dds.nagoya Managed True False False True True 14 730
    magatamademo3.dds-dev.space Federated True False False True True
    ddsdev.onmicrosoft.com Managed True True True True True 14 730
ユーザ設定

フェデレーション設定で行った「Microsoft Graphへの接続」を行い、Microsoft Graphへ接続済みとします。

  1. New-MgUserコマンドでユーザーを作成します。
    各パラメータ値については、設定する環境の値に変更してください。
    $PasswordProfile = @{
    Password = 'xxxxxxxxxx'
    }

    New-MgUser `
    -UserPrincipalName sato_taro@magatamademo2.dds.nagoya `
    -MailNickName 'TaroSato' `
    -PasswordProfile $PasswordProfile `
    -AccountEnabled `
    -DisplayName "Taro Sato" `
    -UsageLocation "JP" `
    -OnPremisesImmutableId sato_taro@magatamademo2.dds.nagoya
    パラメータ詳細
    引数内容
    UserPrincipalNameユーザーのユーザー プリンシパル名 (UPN) です。
    作成するユーザーのメールアドレスを記載します。
    MailNickNameユーザーのメール別名です。
    PasswordProfileユーザーのパスワードです。
    AccountEnabledアカウントを有効にします。
    DisplayNameデバイスの表示名です。
    UsageLocationISO標準3166に基づく2文字の国コードです。
    日本の場合、JPを記載します。
    OnPremisesImmutableIdオンプレミスのActive DirectoryユーザーアカウントをそのMicrosoft Entraユーザーオブジェクトに関連付けるために使用されます。
    UserPrincipalNameと同じメールアドレスを記載します。
  2. Get-MgUserコマンドでユーザーの登録状況を確認できます。
     Get-MgUser -ALL  -Select Id,UserPrincipalName,OnPremisesImmutableId | ft Id,UserPrincipalName,OnPremisesImmutableId
    出力結果は以下のようになります。
    OnPremisesImmutableIdがないユーザーについては、SAMLを使用することができません。
    コンソールから作成したユーザーの場合、OnPremisesImmutableIdがない場合があります。
    そのようなユーザーでSAMLを使用したい場合、ユーザーデータを更新する必要があります。
    Id                                   UserPrincipalName                     OnPremisesImmutableId
    --                                   -----------------                     ---------------------
    372b642c-368e-4f91-a81e-5321de44e16c sato_taro@magatamademo2.dds.nagoya    sato_taro@magatamademo2.dds.nagoya
    d2eec78f-1c6f-4745-b6ce-9590b7502079 sato_taro2@magatamademo2.dds.nagoya
    7aa00a55-87ae-434d-a335-e77ceef8aa54 sato_taro3@magatamademo2.dds.nagoya   sato_taro3@magatamademo2.dds.nagoya
    b9ce5a88-4122-4e71-a3c7-2f5f1ad7f0cf test-user8@ddsdev.onmicrosoft.com
  3. Update-MgUserコマンドでユーザーの登録データを更新できます。
    Update-MgUser -UserId "372b642c-368e-4f91-a81e-5321de44e16c" -OnPremisesImmutableId "sato_taro@magatamademo2.dds.nagoya"
    更新後、Get-MgUserコマンドでユーザーの登録状況を確認し、OnPremisesImmutableIdが設定されていることを確認します。
    パラメータ詳細
    引数内容
    UserId変更したいユーザーのGet-MgUserで出力したIdを記載します。
    OnPremisesImmutableId変更したいユーザーのUserPrincipalNameを記載します。

EVECLOUDユーザーのSAMLログイン設定

  1. EVECLOUD管理ツールにて、「グループの管理」>「ユーザー管理」からSAMLログイン設定をさせたいユーザーを選択し、「ユーザー設定」画面を開きます。左メニューの[SAML]を選択し、SAMLアプリケーション一覧から登録済みのSAML「Microsoft 365」を選択します。
  2. 「SPNameの属性」によってダイアログの表示が異なります。
    「SAMLログインユーザー1」の項目にMicrosoft 365側で設定されている「OnPremisesImmutableId」の値を入力し、[決定]ボタンをクリックします。
    設定方法の詳細は「SAMLの登録>EVECLOUDユーザーのSAMLログイン設定」を参照してください。
  3. [保存]ボタンをクリックし、設定内容を保存します。

Microsoft 365のログイン

  1. 以下のURLにアクセスし、Microsoft 365のログインを試します。
    https://www.office.com/
  2. サインインをクリックします。
  3. 登録したoffice365のユーザーのメールアドレスを入力して、次へを押します。
  4. EVECLOUDのログインページに遷移します。
  5. EVECLOUD側のユーザーIDで認証することでMicrosoft 365にログインできます。