Windows 2012 R2でADFSサインイン画面の多言語対応

ADFSのサインオン画面をカスタマイズする方法を以前こちらのエントリで書きました。


この記事で書いたように、ADFSの3.0では画面をPowerShellコマンドでもカスタマイズ可能です。この画面をグローバルに公開するために多言語対応する方法もあります。

例えば、以下の画面の「日本語の説明」と書いてある部分を多言語対応させます。



使うPowerShellコマンドレットはSet-AdfsGlobalWebContentというコマンドレットです。
Set-AdfsGlobalWebContent
 

このコマンドのオプションにあるlocaleを利用することで実現可能です。

ここではアクセスしてきたブラウザの言語毎に以下の対応をしたいと思います。

日本語の場合=>「日本語の説明」
英語の場合 =>「English Description」
その他の場合=>「Default Description」


ADFSにログオンして以下の3つのコマンドを打つだけです。

Set-AdfsGlobalWebContent -SignInPageDescriptionText "<p>Default Description</p>"
Set-AdfsGlobalWebContent -SignInPageDescriptionText "<p>English Description</p>" -Locale "en"
Set-AdfsGlobalWebContent -SignInPageDescriptionText "<p>日本語の説明</p>" -Locale "ja"

これで日本語でアクセスすれば、日本語で、


英語でアクセスすれば、英語で、

ドイツ語でアクセスすれば、その他にあたるデフォルトの説明が出ました。


Set-AdfsGlobalWebContentを使うことで以下のような内容も同じ方法で変更できます。

  • CertificatePageDescriptionText
  • CompanyName
  • ErrorPageAuthorizationErrorMessage
  • ErrorPageDescriptionText
  • ErrorPageDeviceAuthenticationErrorMessage
  • ErrorPageGenericErrorMessage
  • ErrorPageSupportEmail
  • HelpDeskLink
  • HelpDeskLinkText
  • HomeLink
  • HomeLinkText
  • PrivacyLink
  • PrivacyLinkText
  • SignInPageAdditionalAuthenticationDescriptionText
  • SignInPageDescriptionText
  • SignOutPageDescriptionText
  • TargetWebContent
  • UpdatePasswordPageDescriptionText


例えばこんな感じで一気に変更することもできます。

Set-AdfsGlobalWebContent `
 -CertificatePageDescriptionText "[Param]CertificatePageDescriptionText" `
 -CompanyName "[Param]CompanyName " `
 -ErrorPageAuthorizationErrorMessage "[Param]ErrorPageAuthorizationErrorMessage" `
 -ErrorPageDescriptionText "[Param]ErrorPageDescriptionText" `
 -ErrorPageDeviceAuthenticationErrorMessage "[Param]ErrorPageDeviceAuthenticationErrorMessage" `
 -ErrorPageGenericErrorMessage "[Param]ErrorPageGenericErrorMessage" `
 -ErrorPageSupportEmail "[Param]ErrorPageSupportEmail" `
 -HelpDeskLink "http://HelpDeskLink.com/" `
 -HelpDeskLinkText "[Param]HelpDeskLinkText" `
 -HomeLink "http://HelpDeskLink.com/" `
 -HomeLinkText "[Param]HomeLinkText " `
 -PrivacyLink "http://PrivacyLink.com/" `
 -PrivacyLinkText "[Param]PrivacyLinkText" `
 -SignInPageAdditionalAuthenticationDescriptionText "Param]SignInPageAdditionalAuthenticationDescriptionText"`
 -SignInPageDescriptionText "[Param]SignInPageDescriptionText " `
 -SignOutPageDescriptionText "[Param]SignOutPageDescriptionText" `
 -UpdatePasswordPageDescriptionText "[Param]IdpInitiatedSignOn.aspx" `
 -Locale "en"

色々変わっているのがわかります。

 
 

設定した内容は「Get-AdfsGlobalWebContent」でも確認可能です。

PS>Get-AdfsGlobalWebContent
Locale                                            : en
CompanyName                                       : [Param]CompanyName
HelpDeskLink                                      : http://helpdesklink.com/
HelpDeskLinkText                                  : [Param]HelpDeskLinkText
HomeLink                                          : http://helpdesklink.com/
HomeLinkText                                      : [Param]HomeLinkText
PrivacyLink                                       : http://privacylink.com/
PrivacyLinkText                                   : [Param]PrivacyLinkText
CertificatePageDescriptionText                    : [Param]CertificatePageDescriptionText
SignInPageDescriptionText                         : [Param]SignInPageDescriptionText
SignOutPageDescriptionText                        : [Param]SignOutPageDescriptionText
ErrorPageDescriptionText                          : [Param]ErrorPageDescriptionText
ErrorPageGenericErrorMessage                      : [Param]ErrorPageGenericErrorMessage
ErrorPageAuthorizationErrorMessage                : [Param]ErrorPageAuthorizationErrorMessage
ErrorPageDeviceAuthenticationErrorMessage         : [Param]ErrorPageDeviceAuthenticationErrorMessage
ErrorPageSupportEmail                             : [Param]ErrorPageSupportEmail
UpdatePasswordPageDescriptionText                 : [Param]IdpInitiatedSignOn.aspx
SignInPageAdditionalAuthenticationDescriptionText : [Param]SignInPageAdditionalAuthenticationDescriptionText

 
 
最後に「Remove-AdfsGlobalWebContent」を使えば設定を全て削除できます。