ADFS PowerShell: веб-API сценариев (Add-AdfsWebApiApplication) с шаблоном RuleTemplate в IssuanceTransformRules - PullRequest
0 голосов
/ 07 февраля 2019

Я определил группу приложений ADFS с помощью ADFS MMC.Я хотел бы создать скрипт для развертывания.Я успешно написал сценарий, используя New-AdfsApplicationGroup и Add-AdfsNativeClientApplication.Далее я хотел бы написать скрипт веб-API.Глядя на выходные данные Get-AdfsWebApiApplication, я вижу следующие IssuanceTransformRules.Правило названо и ссылается на шаблон.

@ RuleTemplate = "LdapClaims"

@ RuleName = "2"

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

=> проблема (store = "Active Directory", типы = ("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);'

Может кто-нибудь предложить способ включить имя или шаблон в сценарий?

1 Ответ

0 голосов
/ 07 февраля 2019

Что если вы включите данные заявки на преобразование в переменную, а затем ссылку на переменную в своем командлете?

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...