クラウドインテグレーション部の峰松優太です。
本シリーズ記事では、PassLogic を利用して以下の 2 つを実現します。
PassLogic とは デバイスレス・ワンタイムパスワード を用いた認証プラットホームであり、パスロジ株式会社より提供されてます。
PassLogic 公式より、以下 2 つの記事が公開されています。
これらのシステムを実際に構築し、詰まった点や考慮すべきだと感じた点について紹介します。
なお、今回の全構築作業を以下 3 フェーズに分割しています。
本記事では、フェーズ 2 について記載します。
Microsoft Entra Connect (旧 Azure AD Connect) を用いて AD と Entra ID を同期します。
Microsoft 公式ドキュメント に従い、Entra Connect を実施します。
今回は AD サーバに Entra Connect をダウンロードして実行し、OU "PassLogic" のみを同期対象としました。
Entra Connect 実施後、AD ユーザ ym に相当するユーザが Entra ID に追加されており、Microsoft 365 へのログインが可能になります。
Entra Connect の完了画面で、こんなことが書かれていますね。
Azure Active Directory (現 Entra ID) では AD 属性 mS-DS-ConsistencyGuid をソースアンカー属性として使用するように構成されています。
ソースアンカー (sourceAnchor) とは
参考: Microsoft Entra Connect: 設計概念
フェーズ 1 の LDAP 認証連携時に objectGUID 属性値をマッピングしましたね。
これによって PassLogic ユーザは ImmutableId の情報を持っていることになり、Microsoft Entra とのフェデレーションを構成することができます。
LDAP 認証連携時に objectGUID ではなく mS-DS-ConsistencyGuid 属性を指定した場合、PassLogic ユーザインタフェースでの AD 認証時にエラーが発生します。
おそらく AD 属性値の格納方式の違いにより、PassLogic が値を認識できないためであると考えられます。
※ 両者の実質的な値は同じです。Powershell で以下のコマンドを実行して確認できます。
# AD の属性値をエクスポート
ldifde `
-f attributes.txt `
-d {対象ユーザの distinguishedName} `
-l objectGUID,mS-DS-ConsistencyGuid
# Entra ID の ImmutableId を確認
Connect-MgGraph -Scopes "User.ReadWrite.All"
Get-MgUser `
-UserId {対象ユーザの UserPrincipalName} `
-Select OnPremisesImmutableId `
| fl OnPremisesImmutableId
Entra Connect を使用せずに作成された Entra ID には ImmutableId の値は設定されません。
この場合は、ImmutableId に手動で値を設定する必要があります。
参考: ハードマッチによる Azure AD (Office 365) 上のユーザーをオンプレミス Active Directory ユーザーと紐付ける方法
既存の Entra テナントを用いた Entra Connect については以下をご覧ください。
参考: Microsoft Entra Connect: 既存のテナントがある場合
PassLogic と Microsoft Entra の SAML 認証連携を設定します。
運用管理ガイドに従い、Microsoft Entra の メタデータ を PassLogic サーバへ登録します。
項目 | 説明 |
---|---|
No. | リスト番号 |
プロバイダ | 任意のサービス名 |
SAML タイプ | 「SP initiated SSO」 or 「IdP initiated SSO」 |
NameID フォーマット | サービスで指定されているフォーマット |
UID タイプ | 備考 |
ドメイン | pltest.*** |
Recipient | SAML 認証レスポンスの送信先 URL |
Issuer | https://{PassLogic サーバの FQDN or IP アドレス} |
Audience | SAML 認証レスポンス内の Audience 属性値 |
署名アルゴリズム | SHA-1 or SHA-256 |
セキュリティを向上させるために SHA-1 アルゴリズムは非推奨です。 SHA-256 などのより安全なアルゴリズムを使用してください。 詳細については、こちらをご覧ください。
引用: シングルサインオンに SAML 2.0 ID プロバイダー (IdP) を使用する - 署名ブロック要件
※ SP のメタデータファイルをアップロードすることで、一部の値を自動的に入力できます。
SAML 認証連携用の証明書および秘密鍵を登録します。
今回は openssl コマンドで自己署名証明書を作成し使用しました。
参考: OpenSSL で SSL 自己証明書を発行する手順
以上で、PassLogic 側の設定は完了です。
Microsoft 公式ドキュメント に従い、カスタムドメインを Microsoft 365 フェデレーションドメインとして構成します。
フェデレーションドメインは Powershell を用いて構成するため、Microsoft Graph PowerShell SDK をインストール してください。
(公式ドキュメントが最近更新され、MSOnline から Microsoft Graph PowerShell SDK に変更されています。)
MSOL / Azure AD PowerShell のライセンス割り当て関連「以外」のコマンドについて
ライセンス割り当てに関するコマンド以外(例: Connect-MsolService や Get-AzureADUser など)は、2024 年 3 月 30 日 に廃止が延期されました。
引用: MSOnline / AzureAD PowerShell から Graph PowerShell SDK への移行について 1_概要
# Microsoft 365 へ接続
Connect-MgGraph -Scopes "Domain.ReadWrite.All"
# 変数定義
$Domain = "pltest.***"
$LogOnUrl = "https://{PassLogic サーバの FQDN or IP Address}/ui/idp.php?target={SP登録で登録したプロバイダ}"
$LogOffUrl = "https://{PassLogic サーバの FQDN or IP Address}/ui/?mode=logout"
$IssueUri = "https://{PassLogic サーバの FQDN or IP Address}"
$Protocol = "saml"
$Cert = "{証明書の文字列}"
$FederatedIdpMfaBehavior = "enforceMfaByFederatedIdp"
# フェデレーションドメインの構成
New-MgDomainFederationConfiguration `
-DomainId $Domain `
-IssuerUri $IssueUri `
-PassiveSignInUri $LogOnUrl `
-PreferredAuthenticationProtocol $Protocol `
-SignOutUri $LogOffUrl `
-SigningCertificate $Cert `
-FederatedIdpMfaBehavior "enforceMfaByFederatedIdp"
以上で Microsoft Entra 側の設定も完了です。
Microsoft 365 のログインページへアクセスします。
ユーザ名を入力すると PassLogic の認証画面に遷移します。
PassLogic 認証が成功すると Microsoft 365 のログインページに戻り Microsoft 365 へのログインが完了します。
以上で、PassLogic と Microsoft 365 の SAML 認証連携が完了しました。
本記事では、Entra Connect による AD と Entra ID の同期と、SAML 認証連携による PassLogic 認証を介した Microsoft 365 へのログインを実装しました。
フェーズ 2 の要点は以下です。
最後までお読みいただきありがとうございました。 次回の記事をお待ちください。
PassLogic Enterprise Edition Ver.5.0.0 運用管理ガイド (PassLogic 製品に同梱)
Office 365 と PassLogic を SAML 連携
Microsoft Entra Connect と Microsoft Entra Connect Health のインストール ロードマップ
ハードマッチによる Azure AD (Office 365) 上のユーザーをオンプレミス Active Directory ユーザーと紐付ける方法
Microsoft Entra Connect: 既存のテナントがある場合
シングル サインオンに SAML 2.0 ID プロバイダー (IdP) を使用する
Microsoft Graph PowerShell SDK をインストールする
MSOnline / AzureAD PowerShell から Graph PowerShell SDK への移行について 1_概要