Amazon Web Services ブログ
Amazon WorkSpacesをSAP Single Sign-Onと統合する方法
SAP Single Sign-Onにより、ユーザーは、システムがオンプレミスであろうとクラウドであろうと、集中認証を使用してSAPと非SAPシステムに安全に接続できます。SAP Single Sign-Onは、ユーザー認証と安全なデータ通信を管理し、2要素認証とリスクベース認証を統合するシンプルさを提供します。これには、携帯電話とRSA SecurIDカードの連携も含みます。さらに、SAP Single Sign-Onは、Kerberos/SPNEGO、X.509証明書やセキュリティ・アサーション・マークアップ言語 (SAML)など、様々な種類の認証方法をサポートしています。このブログでは、Kerberos/SPNEGOを基盤としたSAP Single Sign-On (*)をAmazon WorkSpacesと統合する方法を説明します。また、世界中の従業員に対して数千のデスクトップを迅速に提供するために、クラウド、あるいはオンプレミス環境にある既存のActive Directoryサービスを使用する方法についても説明します。
(*) SAPノート 1848999に基づいて、SAP Single Sign-Onのライセンスが必要になります。詳細は、SAP社アカウントエグゼクティブにお問い合わせください。
一般的に、3つのシナリオがあります。
- Amazon WorkSpacesをAD Connectorと既存のオンプレミス環境のActive Directoryと統合 (図1)
- Amazon WorkSapcesをAzure Active Directory (Azure AD)と統合 (図2)
- Amazon WorkSpacesをAD Connector、事前に構築したAmazon Elastic Compute Cloud (Amazon EC2)上のActive Directory (AD)、AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD)と統合 (図3-1と3-2)
このブログでは、AWS Managed Microsoft ADを使用したシナリオ3を例に説明します。
ブログ「How to Connect Your On-Premises Active Directory to AWS Using AD Connector」で示されている手順によりシナリオ1を、 ブログ「Add your WorkSpaces to Azure AD using Azure Active Directory Domain Services」を参照することでシナリオ2を適用することができます。
SAPノート 66971に従い、選択したWindowsバージョンとSAP GUIのサポート条件を確認してください。このブログでは、Windows 10でのGUI導入を説明します。
シナリオ1のアーキテクチャ – Amazon WorkSpacesとオンプレミスのADと連携するAD Connector
シナリオ2のアーキテクチャ – Amazon WorkSpacesとAzure AD
シナリオ3のアーキテクチャ1 – Amazon WorkSpacesとAmazon EC2上に構築したADと連携するAD Connector
シナリオ3のアーキテクチャ2 – Amazon WorkSpacesとAWS Managed Microsoft AD
前提条件
- AWSアカウントとデフォルトのAmazon Virtual Private Cloud (VPC)が既にあります
- パブリックサブネットにAmazon WorkSpacesとAWS Managed Microsoft ADを展開します
- パブリックインターネット経由でAmazon WorkSpacesに接続できます
- SAP Single Sign-On用の既存のSAPライセンスを保有しています
- Amazon WorkSpacesを利用可能なリージョンで展開できます
展開手順
- AWS Managed Microsoft ADを構築
- AWS Managed Microsoft ADで作成したユーザーを選択してAmazon WorkSpacesを起動
- 起動したAmazon WorkSpacesにSAP GUIとSAP Secure Login Clientをインストール
- SAP GUIのシングルサインオン (SSO)機能を適切に設定
- SAP GUIのSSO機能をテスト
- (オプション) スケールアウト利用のためにAmazon WorkSpaces イメージとバンドルを作成し、SAP GUIのログオンエントリーを共有Windowsファイルシステムで一元化
- (代替案) SAP GUIのシングルサインオンができるAmazon AppStream2.0を展開
ウォークスルー
AWS Managed Microsoft ADの構築とAmazon WorkSpacesの展開
AWS Managed Microsoft ADとAmazon WorkSpacesの展開のために、ここからサンプルコードをダウンロードしてください。
要件:
- AWS Command Line Interface (AWS CLI)が管理者権限で既に設定されている必要があります
- Amazon Cloud Development Kit (AWS CDK)のバージョン1.33.0がインストールされている必要があります
- Python 3がインストールされている必要があります
概要:
app.pyファイルには2つのCDKスタックがあります。
- AWSManagedAD:
- AWS Managed Microsoft ADを作成
- Amazon Route 53 プライベートホストゾーンとAWS Managed Microsoft ADを指し示すAレコードを作成
- ドメインユーザー/グループ管理用のAmazon EC2 Windowsインスタンスを作成
- AWS Managed Microsoft ADに自動的に参加するためのAmazon EC2インスタンスにアタッチするAWS Systems Manager パラメータとドキュメントを作成
- Amazon WorkSpacesをAWS Managed Microsoft ADに登録するためのAWS Lambda関数を作成
- AWSWorkSpaces:
- SAP GUI構成用のAmazon WorkSpacesを作成
構築手順:
- 私のサンプルのGitHubリポをお客様のデバイスのフォルダにクローンし、フォルダに移動します
- 2つのAWS Secrets Managerのシークレットを作成します。1つはドメイン管理者のパスワードのシークレットで、もう1つは事前に作成したAmazon EC2キーペア名です。シークレットキーの名前は”Key”です。パスワードは、AWS Managed Microsoft ADのパスワードルールに準拠する必要があります
- cdk.jsonファイルをお客様の環境に合わせて編集します
{ "app": "python3 app.py", "context": { "Account": "<AWS Account ID>", "Region": "<AWS Region>", "Domain_name": "<AD Domain Name>", "Secret_domain_password_arn": "<Secret Manager for AD Password ARN value>", "Instance_type": "<EC2 Instance Type>", "VpcId": "<VPC ID>", "Subnet1": [ "<Piublic Subnet1 ID>", "<The AZ that the Subnet1 locates>" ], "Subnet2": [ "<Piublic Subnet2 ID>", "<The AZ that the Subnet2 locates>" ], "Secret_keypair_arn": "< Secret Manager for EC2 Key Value ARN value >", "WorkSpacesUser" : "<NetBIos\User>", "WorkSpacesBundle": "wsb-8vbljg4r6" } }
パラメータ:
Region: AWS Directory ServiceとAmazon WorkSpacesをサポートするリージョンを選択します。このブログでは、”us-west-2“リージョンを使用しています
Domain_name: AWS Managed Microsoft ADの優先ドメイン名を入力します。このブログでは、”test.lab“を使用しています
Secret_domain_password_arn: ドメイン管理者パスワードのシークレットのシークレットAmazon Resource Name (ARN)の値を入力します
Instance_type: インスタンスタイプは、Amazon EC2のドキュメントを参照してください
Subnet[1|2]: 同じVpcIdの2つのサブネットの値をリストから入力します。配列の前者の要素はサブネットIDで、後者はサブネットが存在するアベイラビリティーゾーンです
Secret_keypair_arn: Amazon EC2キーペアのシークレットのシークレットARNの値を入力します
WorkSpacesUser: AWS Managed Microsoft ADの構築後に作成するユーザー名を入力します。形式は、”NETBIOS\AD_USER“です
WorkSpacesBundle: SAP GUIを展開するデフォルトのAmazon WorkSpaces バンドルIDを入力します。”Standard Windows 10“の”wsb-8vbljg4r6“を選択しました - cdkに必要なPythonライブラリをインストールします
$ pip install -r requirement.txt
- お客様のAWSアカウントでcdk bootstrapを実行します
$ cdk bootstrap aws://<AWS_ACCOUNT>/<AWS_REGION>
- お客様のAWSプロファイルでAWSManagedADスタックを展開します
$ cdk deploy AWSManagedAD --profile <AWS Profile>
AWSプロファイルを指定しない場合、デフォルトプロファイルが使用されます。このスタックでは、すべてのリソースを展開するのに10-20分かかることがあります - AWSManagedADスタックが展開された後に、Amazon EC2インスタンスにログインして、Amazon WorkSpacesのドメインユーザーを作成できます。お客様のローカル環境からAmazon EC2インスタンスに接続できるようデフォルトのセキュリティグループを修正します。ユーザーの”First Name“、”Last Name“、そして”Email“を指定してください
- 指定したドメインユーザーでAWSWorkSpacesスタックを展開します
$ cdk deploy AWSWorkSpaces --profile <AWS Profile>
このスタックでは、Amazon WorkSpacesを展開するのに10分かかることがあります - Amazon WorkSpacesが構築されたら、Amazon WorkSpaces クライアントをダウンロードしてインストールし、Amazon WorkSpaces コンソールで登録コードを入力し、ドメインユーザーでログインします
AWS Managed Microsoft ADの構築とAmazon WorkSpacesの展開
要件:
- SAP GUIとSAP Secure Login ClientがAmazon WorkSpacesにインストールされています
- 指定したドメインユーザーでAmazon WorkSpacesにログインします
- Amazon WorkSpacesからSAPシステムへのネットワーク接続が許可されています
- SAPシステムはお客様自身でインストールしています
構築手順:
- トランザクションコード”SNCWIZARD“を使用してSecure Network Communications (SNC)のIdentityを設定し、SAPプロファイルパラメータを変更します
- SSO用のドメインユーザーを作成します。この例では、ユーザーは”Hank”です。”Attribute Editor”でサービス属性ServicePrincipalNameを更新します
- トランザクションコード”SNCWIZARD“でKerberosユーザーを作成して、ドメインユーザーと一致させます。ユーザープリンシパルが”緑色のライト“になったことを確認します
- トランザクションコード”SU01“でSAP NetWeaverユーザーに関連付けるSNC名をコピーします
- “SNCWIZARD“で残りのプロセスを完了します
SAP GUIのSSO機能をテスト
- SAP GUIの”Secure Network Communication“のオプションを有効化し、”SNC name“を入力します
- 指定したSAPシステムをダブルクリックして、シングルサインオン機能が準備できているか確認してください
(オプション) スケールアウト利用のためにAmazon WorkSpaces イメージとバンドルを作成し、SAP GUIのログオンエントリーを共有Windowsファイルシステムで一元化
SAP GUIを使用してSAPシステムに接続する必要がある多くのスタッフがいるかもしれません。従来の環境では、各ユーザーがラップトップにSAP GUIをインストールし、SAPログオンエントリーを何度も設定する必要がありました。Amazon WorkSpacesを使用すれば、事前構築済みのバンドルを簡単に複製し、ドキュメントに従って数回クリックするだけで各ユーザーに環境を展開できます。
次に、各ユーザー用に事前構築済みのラップトップを展開するためのバンドルを作成できます。各ユーザーは、何度も工数をかけてSAP GUIログオンエントリーをメンテナンスする必要があります。共有ファイルシステム (Amazon FSx for Windowsファイルシステム、あるいは自身で構築したWindowsファイルシステムのいずれか)を使用して、様々な部門のユーザーに対して一元化されたSAPログオンエントリーを適用し、全体的な工数を削減できます。さらに、SAP GUI Installation Serverを展開して、カスタマイズしたWindowsスクリプトをユーザーに配信できます。詳細手順は「SAPGUI Installation Server Part 5 – Scripting blog」に記載されています。
次の手順では、SAP GUIログオンエントリーを同じAmazon FSxファイルシステムで共有する2つのAmazon WorkSpacesを示しています。
要件:
- Amazon FSxファイルシステムは、Amazon WorkSpacesと同じドメインに作成し、最初のAmazon WorkSpacesのネットワークデバイスに関連付けます
- ドメインユーザーは同じ組織に所属しており、Amazon FSxファイルシステムにアクセスする権限があります
- Amazon WorkSpacesとAmazon FSxファイルシステムの間に適切なセキュリティグループとNetwork ACLs (NACL)を設定します
(Amazon WorkSpaces1)
- 事前構成済みのSAP GUIとSAPGUILandscape.xml (SAPログオンエントリー)は、共有フォルダー”Z:\“に変更しています
(Amazon WorkSpaces2)
- 別のAmazon WorkSpacesを構築し、同じ共有フォルダーに接続して、SAP GUIのオプション (Server Configuration Files)を同じSAPGUILandscape.xmlに変更します
(Amazon WorkSpaces2) - SAP GUIを再起動した後、システムリストが用意できています
最後に、SAP SNCはドメインユーザーとSAP GUIユーザーを1対1で関連付けするため、様々なドメインユーザーを連動するSAP GUIユーザーに事前に関連付けしておく必要があります。ドメインの他のAmazon WorkSpacesユーザーは、SAPシステムへのSSOを使用できます。
(代替案) SAP GUI SSOができるAmazon AppStream2.0を展開
Amazon AppStream 2.0は、ユーザーがPC、Chromebook、Macを含むあらゆるコンピューターのブラウザを介してSAP環境に安全に接続できるようにするフルマネージド型のアプリケーションストリーミングサービスです。
Amazon AppStream 2.0とAmazon WorkSpacesの設定にはいくつか違いがあります。
- Amazon AppStream 2.0は、AWS Directory Serviceではなく”Directory Configs“を使用します。最初に”Directory Configs“を事前構成し、ステージング環境でAmazon AppStream 2.0 Image Builderがドメインに接続できることを確認します (VPCで設定するDynamic Host Configuration Protocol (DHCP) オプションセットをカスタム Domain Name System (DNS)で構成する新しいオプションに置き換えることもできます)
- Amazon AppStream 2.0 Image Builderの用意ができたら、イメージ内のSAP GUI SSOを構成し、関連するフリートを作成してスタックに関連付けます
- Amazon AppStream 2.0はブラウザベースのサービスのため、認証はWindowsドメインのSAML 2.0 IDプロバイダーによって検証されます。お客様の環境でActive Directory Federation Services (ADFS)を構成するためにはAWSブログ「How to Enable Server-Side LDAPS for Your AWS Microsoft AD Directory」を、Amazon AppStream 2.0をスタックに接続するためには「Amazon AppStream 2.0 の ID フェデレーションを AD FS 3.0 で実現する」を参照してください
テスト環境は以下です。
- Amazon AppStream 2.0 ディレクトリ設定を構成します
- Amazon AppStream 2.0 イメージを作成します
- ADFSでフェデレーションルールを作成します
- Amazon AppStream 2.0のSAP GUI SSO連携の結果は以下です
詳細な手順は、ガイド「Deploying SAP GUI on Amazon AppStream 2.0」を参照してください。
拡張
異なるリージョンでの災害復旧のためにAmazon WorkSpacesの利用を拡大するには、AWSブログ「Building a multi-region disaster recovery environment for Amazon WorkSpaces」を参照して構成を複製することで、複数のリージョンでAmazon WorkSpacesを構築できます。
結論
Amazon WorkSpacesを使用してSAP GUI SSO機能を統合することは、世界中のSAPユーザーにとって柔軟で拡張性があります。Amazon WorkSpacesを展開するための簡単な方法のほかにも、WindowsデスクトップをAmaozn WorkSpacesに移行することで資本コストを削減できます。
翻訳はPartner SA 河原が担当しました。原文はこちらです。