3

ADFS MMC を使用して ADFS アプリケーション グループを定義しました。展開用のスクリプトを作成したいと思います。New-AdfsApplicationGroup と Add-AdfsNativeClientApplication を使用してスクリプトを作成しました。次に、Web API のスクリプトを作成します。Get-AdfsWebApiApplication の出力を見ると、次の IssuanceTransformRules が表示されます。ルールには名前が付けられ、テンプレートが参照されます。

@RuleTemplate = "LdapClaims"

@ルール名 = "2"

c:[タイプ == " http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname "、発行者 == "AD AUTHORITY"]

=> issue(store = "Active Directory", types = (" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress ", " http://schemas.xmlsoap.org/ws /2005/05/identity/claims/name ", " http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn "), query = ";mail,sAMAccountName,userPrincipalName;{0} ", param = c.Value);

これを次のようにスクリプト化しました。

Add-AdfsWebApiApplication -Name "My Web API" -AllowedClientTypes 6 -ApplicationGroupIdentifier "MyApp" -IssueOAuthRefreshTokensTo 2 -TokenLifetime 7 -Identifier {https://apphost/myapp/api/} -IssuanceTransformRules '@RuleTemplate = "LdapClaims", @RuleName = "2", c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";mail,sAMAccountName,userPrincipalName;{0}", param = c.Value);'

これにより、次のエラーが発生します。

パーサー エラー:「POLICY0030: 構文エラー、予期しない COMMA、次のいずれかが必要です: O_SQ_BRACKET IDENTIFIER NOT AT IMPLY .」行:1 文字:1 + Add-AdfsWebApiApplication -Name "My Web API" -AllowedClientTypes ... + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo :InvalidData: (@RuleTemplate =... ram = c.Value);:String) [Add-AdfsWebApiApplication]、PolicyValidationException + FullyQualifiedErrorId: POLICY0002.Microsoft.IdentityServer.Management.Commands.Add-AdfsWebApiApplicationCommand

@RuleTemplate と @RuleName の両方を削除すると、以下は正常に実行されますが、LDAP 属性と発信クレーム タイプのドロップダウン リストを提供するグラフィカル テンプレートを使用して編集できないカスタム ルールが生成されます。

Add-AdfsWebApiApplication -Name "My Web API" -AllowedClientTypes 6 -ApplicationGroupIdentifier "MyApp" -IssueOAuthRefreshTokensTo 2 -TokenLifetime 7 -Identifier {https://apphost/myapp/api/} -IssuanceTransformRules 'c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";mail,sAMAccountName,userPrincipalName;{0}", param = c.Value);'

名前やテンプレートをスクリプトに含める方法を提案してくれる人はいますか?

4

1 に答える 1

2

変換要求データを変数に含めてから、コマンドレットで変数を参照するとどうなるでしょうか?

$transformRules = @"
@RuleTemplate = "LdapClaims"

@RuleName = "2"

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]

=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";mail,sAMAccountName,userPrincipalName;{0}", param = c.Value);
"@

Add-AdfsWebApiApplication -Name "My Web API" -AllowedClientTypes 6 -ApplicationGroupIdentifier "MyApp" -IssueOAuthRefreshTokensTo 2 -TokenLifetime 7 -Identifier {https://apphost/myapp/api/} -IssuanceTransformRules $transformRules
于 2019-02-07T18:58:13.703 に答える