【IDM】AD FS 2.0 PowerShell コマンドレットを使用する~1 基礎編

いろいろと書きたいことがあるのですが、今回は AD FS 2.0 の PowerShell コマンドレットについて、その第一歩を書いておきます。

英語がイヤでない方は、原文である以下の記事もどうぞ。

AD FS 2.0 for Windows PowerShell Basics

AD FS 2.0 をインストールすると、AD FS 2.0 用 PowerShell コマンドレットもインストールされます。

試しに、AD FS 2.0 がインストールされた環境で PowerShell コンソールを起動し、「Get-PSSnapin –Registered」と入力してみてください。AD FS 2.0 用コマンドレットが正しくインストールされていれば以下のように表示されます。

PS C:\> Get-PSSnapin –Registered

Name : Microsoft.Adfs.PowerShell PSVersion : 1.0 Description : This powershell snap-in contains cmdlets used to manage Microsoft Identity Server resources.

なおこの結果は「システムに登録されている」ことを示しており、実際に使用するには、おなじみの「Add-PSSnapin」を使用する必要があります。以下のように入力すれば、現在のセッションで AD FS 2.0 コマンドレットを使用することができます。

PS C:\> Add-PSSnapin Microsoft.Adfs.PowerShell

PowerShell を使ったことがある方ならばご存知の通り、Add-PSSnapin をプロファイルに書いておけば、次回 PowerShell 起動時に自動的に AD FS 2.0コマンドレットを読み込ませることができます。

AD FS 2.0 がインストールされたマシンでプロファイルを作ったことが無い場合には、はじめに以下のコマンドで WindowsPowerShell ディレクトリを作成してください。<UserName> は、ログオンしているユーザー ID を指定します。

PS C:\> md C:\Users\<UserName>\Documents\WindowsPowerShell

次に上記フォルダにプロファイル(Microsoft.PowerShell_profile.ps1)を作成します。$PROFILE には、プロファイルへのフルパスが格納されています(C:\Users\<UserName>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1)。

PS C:\> notepad $PROFILE

なお、プロファイルが存在しない場合には、当然ですが以下のメッセージが表示されますので「はい」をクリックしてください。

image
ファイル C:\Users\<username>\Documents\WindowsPowerShell\Microsoft_PowerShell_Profile.ps1 が見つかりません。新しく作成しますか?

メモ帳が開いたら、以下のコマンドを書き込み、保存します。

Add-PSSnapin Microsoft.Adfs.PowerShell

なお、未署名のローカルに保存されたスクリプトの実行を許可するために、以下のコマンドも入力しておいてください。知っている方にとってはお約束ではありますが、念のため。

PS C:\> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y PS C:\>

使用可能なコマンドレットの一覧を表示するには Get-Command を使用しますが、これでは一切合財のコマンドが表示されてしまって面倒です。

AD FS 2.0 用コマンドレットは、ADFS というプレフィックスがついているので、以下のように入力すれば ADFS 関連のコマンドレットのみを表示することができます。

PS C:\> Get-Command *-ADFS*

CommandType Name Definition ----------- ---- ---------- Cmdlet Add-ADFSAttributeStore Add-ADFSAttributeStore -Name <String> -StoreType... Cmdlet Add-ADFSCertificate Add-ADFSCertificate -CertificateType <String> -T... Cmdlet Add-ADFSClaimDescription Add-ADFSClaimDescription -Name <String> -ClaimTy... Cmdlet Add-ADFSClaimsProviderTrust Add-ADFSClaimsProviderTrust -Name <String> -Iden... Cmdlet Add-ADFSRelyingPartyTrust Add-ADFSRelyingPartyTrust -Name <String> -Identi... Cmdlet Disable-ADFSClaimsProviderTrust Disable-ADFSClaimsProviderTrust -TargetClaimsPro... Cmdlet Disable-ADFSEndpoint Disable-ADFSEndpoint [[-TargetAddressPath] <Stri... Cmdlet Disable-ADFSRelyingPartyTrust Disable-ADFSRelyingPartyTrust -TargetIdentifier ... Cmdlet Enable-ADFSClaimsProviderTrust Enable-ADFSClaimsProviderTrust -TargetClaimsProv... Cmdlet Enable-ADFSEndpoint Enable-ADFSEndpoint [[-TargetAddressPath] <Strin... Cmdlet Enable-ADFSRelyingPartyTrust Enable-ADFSRelyingPartyTrust -TargetIdentifier <... Cmdlet Get-ADFSAttributeStore Get-ADFSAttributeStore [[-Name] <String[]>] [-Ve... Cmdlet Get-ADFSCertificate Get-ADFSCertificate [[-CertificateType] <String[... Cmdlet Get-ADFSClaimDescription Get-ADFSClaimDescription [[-Name] <String[]>] [-... Cmdlet Get-ADFSClaimsProviderTrust Get-ADFSClaimsProviderTrust [[-Name] <String[]>]... Cmdlet Get-ADFSEndpoint Get-ADFSEndpoint [[-AddressPath] <String[]>] [-V... Cmdlet Get-ADFSProperties Get-ADFSProperties [-Verbose] [-Debug] [-ErrorAc... Cmdlet Get-ADFSProxyProperties Get-ADFSProxyProperties [-Verbose] [-Debug] [-Er... Cmdlet Get-ADFSRelyingPartyTrust Get-ADFSRelyingPartyTrust [[-Name] <String[]>] [... Cmdlet Get-ADFSSyncProperties Get-ADFSSyncProperties [-Verbose] [-Debug] [-Err... Cmdlet New-ADFSClaimRuleSet New-ADFSClaimRuleSet -ClaimRule <String[]> [-Ver... Cmdlet New-ADFSContactPerson New-ADFSContactPerson [-Company <String>] [-Emai... Cmdlet New-ADFSOrganization New-ADFSOrganization -DisplayName <String> -Orga... Cmdlet New-ADFSSamlEndpoint New-ADFSSamlEndpoint -Binding <String> -Protocol... Cmdlet Remove-ADFSAttributeStore Remove-ADFSAttributeStore [-TargetName] <String>... Cmdlet Remove-ADFSCertificate Remove-ADFSCertificate [-TargetCertificate] <Ser... Cmdlet Remove-ADFSClaimDescription Remove-ADFSClaimDescription [-TargetName] <Strin... Cmdlet Remove-ADFSClaimsProviderTrust Remove-ADFSClaimsProviderTrust -TargetClaimsProv... Cmdlet Remove-ADFSRelyingPartyTrust Remove-ADFSRelyingPartyTrust -TargetIdentifier <... Cmdlet Revoke-ADFSProxyTrust Revoke-ADFSProxyTrust [-Verbose] [-Debug] [-Erro... Cmdlet Set-ADFSAttributeStore Set-ADFSAttributeStore [-TargetName] <String> [-... Cmdlet Set-ADFSCertificate Set-ADFSCertificate -CertificateType <String> -T... Cmdlet Set-ADFSCertSharingContainer Set-ADFSCertSharingContainer -ServiceAccount <St... Cmdlet Set-ADFSClaimDescription Set-ADFSClaimDescription [-TargetName] <String> ... Cmdlet Set-ADFSClaimsProviderTrust Set-ADFSClaimsProviderTrust [-Name <String>] [-I... Cmdlet Set-ADFSEndpoint Set-ADFSEndpoint [[-TargetAddressPath] <String>]... Cmdlet Set-ADFSProperties Set-ADFSProperties [-AuthenticationContextOrder ... Cmdlet Set-ADFSProxyProperties Set-ADFSProxyProperties [-HostName <String>] [-H... Cmdlet Set-ADFSRelyingPartyTrust Set-ADFSRelyingPartyTrust [-Name <String>] [-Not... Cmdlet Set-ADFSSyncProperties Set-ADFSSyncProperties [-PrimaryComputerName <St... Cmdlet Update-ADFSCertificate Update-ADFSCertificate [[-CertificateType] <Stri... Cmdlet Update-ADFSClaimsProviderTrust Update-ADFSClaimsProviderTrust [-MetadataFile <S... Cmdlet Update-ADFSRelyingPartyTrust Update-ADFSRelyingPartyTrust [-MetadataFile <Str...

コマンドレットのヘルプを参照するには、ご存知 Get-Help を使用します。以下は、Set-ADFSProperties のヘルプを参照しています。

PS C:\> Get-Help Set-ADFSProperties

名前 Set-ADFSProperties

概要 フェデレーション サービスのプロパティを設定します。

構文 Set-ADFSProperties [-AcceptableIdentifier <Uri[]>] [-AddProxyAuthorizationRules <string>] [-ArtifactDbConnection <s tring>] [-AuthenticationContextOrder <Uri[]>] [-AutoCertificateRollover <Boolean>] [-CertificateCriticalThreshold < int>] [-CertificateDuration <int>] [-CertificateGenerationThreshold <int>] [-CertificatePromotionThreshold <int>] [ -CertificateRolloverInterval <int>] [-CertificateThresholdMinutesMultiplier <int>] [-ContactPerson <ContactPerson[] >] [-EncryptionCertRevocationCheck <string>] [-ExtendedProtectionTokenCheck <string>] [-FederationPassiveAddress <s tring>] [-HostName <string>] [-HttpPort <int>] [-HttpsPort <int>] [-Identifier <Uri>] [-LogLevel <string[]>] [-Moni toringInterval <int>] [-NetTcpPort <int>] [-NtlmOnlySupportedClientAtProxy <Boolean>] [-OrganizationInfo <Organizat ion>] [-PassThru] [-PreventTokenReplays <System.Nullable[bool]>] [-ProxyTrustTokenLifetime <int>] [-RequireSignedSa mlRequests <System.Nullable[bool]>] [-SamlMessageDeliveryWindow <int>] [-SigningCertRevocationCheck <string>] [-Sig nSamlAuthnRequests <System.Nullable[bool]>] [-SsoLifetime <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

説明 Set-ADFSProperties コマンドレットは、フェデレーション サービスのグローバル プロパティおよび構成を設定します。

関連するリンク Online version: https://go.microsoft.com/fwlink/?LinkId=177389 Get-ADFSProperties

注釈 例を参照するには、次のように入力してください: "get-help Set-ADFSProperties -examples". 詳細を参照するには、次のように入力してください: "get-help Set-ADFSProperties -detailed". 技術情報を参照するには、次のように入力してください: "get-help Set-ADFSProperties -full".

PS C:\>

ワイルドカードを使用すれば複数のコマンドレットのヘルプを一度に表示することもできます。例えば以下のように入力します。

PS C:\> Get-Help *-ADFS*

Name Category Synopsis ---- -------- -------- Add-ADFSAttributeStore Cmdlet フェデレーション サービスに属性ストアを追加します。 Add-ADFSCertificate Cmdlet 署名、暗号化解除、または通信保護のための新しい証明書をフェデレーション ... Add-ADFSClaimDescription Cmdlet フェデレーション サービスに要求記述を追加します。 Add-ADFSClaimsProviderTrust Cmdlet 新しい要求プロバイダー信頼をフェデレーション サービスに追加します。 Add-ADFSRelyingPartyTrust Cmdlet 新しい証明書利用者信頼をフェデレーション サービスに追加します。 Remove-ADFSClaimsProviderTrust Cmdlet フェデレーション サービスから要求プロバイダー信頼を削除します。 Disable-ADFSClaimsProviderTrust Cmdlet フェデレーション サービスの要求プロバイダー信頼を無効にします。 Enable-ADFSEndpoint Cmdlet フェデレーション サービスのエンドポイントを有効にします。 Disable-ADFSEndpoint Cmdlet フェデレーション サービスのエンドポイントを無効にします。 Remove-ADFSRelyingPartyTrust Cmdlet フェデレーション サービスから証明書利用者信頼を削除します。 Disable-ADFSRelyingPartyTrust Cmdlet フェデレーション サービスの証明書利用者信頼を無効にします。 Enable-ADFSClaimsProviderTrust Cmdlet フェデレーション サービスの要求プロバイダー信頼を有効にします。 Enable-ADFSRelyingPartyTrust Cmdlet フェデレーション サービスの証明書利用者信頼を有効にします。 Get-ADFSAttributeStore Cmdlet フェデレーション サービスの属性ストアを取得します。 Get-ADFSCertificate Cmdlet フェデレーション サービスに存在する証明書を取得します。 Get-ADFSClaimDescription Cmdlet フェデレーション サービスに存在する要求記述を取得します。 Get-ADFSClaimsProviderTrust Cmdlet フェデレーション サービスの要求プロバイダー信頼を取得します。 Get-ADFSEndpoint Cmdlet フェデレーション サービスのエンドポイントを取得します。 Get-ADFSProxyProperties Cmdlet フェデレーション サーバー プロキシのプロパティを取得します。 Get-ADFSRelyingPartyTrust Cmdlet フェデレーション サービスの証明書利用者信頼を取得します。 Get-ADFSProperties Cmdlet フェデレーション サービスのプロパティを取得します。 Get-ADFSSyncProperties Cmdlet フェデレーション サービスの構成データベースの同期プロパティを取得します。 New-ADFSClaimRuleSet Cmdlet 新しい要求規則のセットを作成します。 New-ADFSContactPerson Cmdlet 新しい連絡担当者オブジェクトを作成します。 New-ADFSOrganization Cmdlet 新しい組織情報オブジェクトを作成します。 New-ADFSSamlEndpoint Cmdlet 新しい SAML プロトコル エンドポイント オブジェクトを作成します。 Remove-ADFSAttributeStore Cmdlet フェデレーション サービスから属性ストアを削除します。 Remove-ADFSCertificate Cmdlet フェデレーション サービスから証明書を削除します。 Remove-ADFSClaimDescription Cmdlet フェデレーション サービスから要求記述を削除します。 Revoke-ADFSProxyTrust Cmdlet フェデレーション サービスに構成されているすべてのフェデレーション サーバ... Set-ADFSAttributeStore Cmdlet 属性ストアのプロパティを設定します。 Set-ADFSCertificate Cmdlet フェデレーション サービスが署名、暗号化解除、または通信保護に使用する既... Set-ADFSClaimDescription Cmdlet 既存の要求記述のプロパティを設定します。 Set-ADFSClaimsProviderTrust Cmdlet 要求プロバイダー信頼のプロパティを設定します。 Set-ADFSCertSharingContainer Cmdlet フェデレーション サーバー ファーム内で管理対象証明書を共有するために使用... Set-ADFSEndpoint Cmdlet フェデレーション サービスのエンドポイントのプロパティを設定します。 Set-ADFSProxyProperties Cmdlet フェデレーション サーバー プロキシのプロパティを設定します。 Set-ADFSRelyingPartyTrust Cmdlet 証明書利用者信頼のプロパティを設定します。 Set-ADFSProperties Cmdlet フェデレーション サービスのプロパティを設定します。 Set-ADFSSyncProperties Cmdlet フェデレーション サーバー ファームのデータベース同期エンジンのプロパティ... Update-ADFSCertificate Cmdlet フェデレーション サービスの証明書を更新します。 Update-ADFSClaimsProviderTrust Cmdlet フェデレーション メタデータの要求プロバイダー信頼を更新します。 Update-ADFSRelyingPartyTrust Cmdlet フェデレーション メタデータの証明書利用者信頼を更新します。