背景
シングルサインオンのログイン方式(以下はSSO)は、多くのクラウドサービスの中で主流のログイン方法として、多くの利点があります。例えば、パスワードの使用が減少することで、セキュリティリスクを低下させることや一度のログインで複数のサービスやアプリケーションにアクセスできることによる、ユーザビリティの向上等です。
SAS Viyaはクラウドネイティブアーキテクチャを採用したデータプラットフォームであり、様々な認証プロバイダーとSAMLやOIDCなどの接続方式を通じてSSOを実現し、ユーザーに高いセキュリティと利便性を提供することができます。
本記事の第1部では、SAS ViyaのユーザーがSAS Viya環境とAzure ADを連携させるためのSSOログイン方式を設定する際の基礎知識と初期準備に焦点を当てています。
以下は本記事内容の一覧です。読者は以下のリンクで興味のあるセクションに直接ジャンプすることができます。
1. SAS Viyaでの認可と認証
2. 作業の準備
3. 証明書のインストール
1. SAS Viyaでの認可と認証
SAS ViyaでのSSOログインは主にSCIM認可とSAML認証により実現されますが、この二つの概念についてまず簡単に紹介します。
1-1 SCIM認可とは
SCIM(System for Cross-domain Identity Management)は、異なるシステム間でユーザー情報の管理と同期を効率化する標準化されたプロトコルです。SCIMを利用すると、ユーザーアカウントの作成や更新、削除を自動化できます。SAS ViyaとAzure ADの連携では、SCIMを使ってAzure ADのユーザー情報をSAS Viyaに同期し、管理作業を効率化します。
SAS ViyaでSCIM認可を利用するには以下のいくつかの注意点があります。
・外部DNS名の要件: SAS Viyaでは公開インターネットで解決できる外部DNS名が必要です。SCIMクライアント(Azure AD)は、このDNS名を通じてSAS Viyaにアクセスします。
・HTTPSを利用したセキュアな接続: SCIMクライアントは、HTTPSを通じてSAS ViyaのIdentitiesマイクロサービスに安全に接続する必要があります。
・信頼できる証明書: SCIMサーバーの証明書は、Azure ADがサポートする商用証明機関から購入されるべきです。サポートされる証明機関にはCNNIC、Comodo、CyberTrust、DigiCertなどが含まれます。
・ファイアウォール設定: SAS Viya環境へのアクセスを許可するため、適切なファイアウォールルールの設定が必要です。
1-2 SAML認証とは
SAML(Security Assertion Markup Language)は、異なるドメイン間でのユーザー認証とシングルサインオン(SSO)を実現するためのプロトコルです。SAS ViyaとAzure ADの連携により、SAMLを使って一度のログインで複数のサービスにアクセスできるようになり、セキュリティが強化され、使い勝手が向上します。
SAML認証の他に、OIDC(OpenID Connect)も同様の目的で使用されることがあります。OIDCは、よりモダンなアプローチを採用し、特にモバイルアプリケーションやシングルページアプリケーションでの利用が一般的です。今回の記事ではSAML認証を利用したSSOログインを紹介します。
2. 作業の準備
SAS Viyaの新規インストールとともに、SSOを設定する場合、まずSAS Viya環境が利用するホスト名を決める必要があります。本記事では例として下記のドメインを例に説明します。
https://hostname.example.com/
このサンプルドメイン名を使用する手順を実施する際には、関連の部分をご自身のドメイン名に合わせて修正してください。
また、新規インストールのSAS Viyaも既存のSAS Viyaも、ホスト名と一致するパブリックのSSL/TLS サーバー証明書を準備する必要があります。既存のものを持っていない場合は、DigiCert、Verisignなどのサイトで申請することが可能です。申請方法に関しては各サイトに記載されている内容を参照してください。
準備が必要な証明書ファイルは以下の三種類となります。
・DigiCertCA.crt
これは「CA(Certificate Authority、認証局)ルート証明書」と呼ばれるものです。CAルート証明書は、SSL証明書の信頼性を保証するために使用されます。クライアント(例えばWebブラウザ)はこのルート証明書を使用して、サーバーのSSL証明書が信頼できる認証局によって発行されたことを確認します。
・sample_hostname_example_com.crt
このファイルは「サーバー証明書」として知られています。特定のドメイン名(この場合は「sample_hostname_example_com」)に対する身元を証明するために使用されます。これにより、ユーザーが接続しているサーバーがそのドメイン名の正当な所有者であることが保証されます。
・sample_hostname_example_com.key
これは「秘密鍵」です。秘密鍵はサーバー証明書と対になっており、SSL/TLS通信での暗号化と復号化のプロセスに不可欠です。重要なのは、この秘密鍵を安全に保管し、不正アクセスから守ることです。公開鍵暗号化では、この秘密鍵に対応する公開鍵がサーバー証明書内に含まれています。
3. 証明書のインストール
3-1.証明書ツールのダウンロード
DigiCertで証明書を申請した場合は、下記のDigiCertサイトにアクセスし、申請した項目を選択します。
https://www.digicert.com/secure/orders
下記の画面から「Download certificate as」をクリックし、「.crt」を選択し、証明書ファイルをダウンロードします。
3-2.証明書ツールの使い方のチェック
ダウンロードしたzipファイルを解凍したら、Root CA証明書「DigiCertCA.crt」、申請した証明書「sample_hostname_example_com.crt」と「INSTALL_INSTRUCTIONS.txt」が入っています。まず、「INSTALL_INSTRUCTIONS.txt」の内容をお読みください。
3-3.証明書の生成
SAS Viyaの環境を構築時に、Root CAとパブリック証明書の他に、プライベート証明書も必要です。これは最初にCSRを生成した時に作られたものであり、次はそのプライベート証明書をエクスポートします。CSRファイルを生成した時に使用したDigiCert Certificate Utilityを開き、左側から「SSL」を選択し、「import」ボタンをクリックします。
ステップ3-1でダウンロードした「sample_hostname_example_com.crt」を選択します。完了したら、インポートされた証明書項目を選択し、下の「Export Certificate」をクリックします。
「Yes, export the private key」と「key file」を選択し、「次へ」ボタンをクリックし、ファイルをPCに保存します。
3-4.証明書インストールを始め
①必要な証明書ファイルはすべて用意できたので、次はこれらの証明書をSAS Viyaにインストールします。以下の内容は、すでにSAS Viyaのデプロイメント方法を熟知されていることを前提に紹介しています。したがって、SAS Viyaのデプロイメント方法については、ここでは割愛します。
②イニシャルデプロイメントの場合は、SSL証明書の設定以外の部分(クラスターの構築、kustomization.yamlとsite-configの作成など)をすべて準備し終わってから、以下のステップを実施してください。
SAS Viyaの環境が構築済みの場合は、デプロイメントの時に使用したkustomization.yamlやsite-configなどのファイルとフォルダを用意した上で、以下のステップを実施してください。
③作業用フォルダのパスを$deployとし、下記のコマンドで証明書パス指定用のファイルとフォルダをコピーします。
cd $deploy cp sas-bases/examples/security/customer-provided-ingress-certificate.yaml site-config/security |
④以下の3つの証明書ファイルを$deploy/site-config/securityにコピーします。
・DigiCertCA.crt
・sample_hostname_example_com.crt
・sample_hostname_example_com.key
そして、customer-provided-ingress-certificate.yamlにこの三つのファイルのパスの定義を下図のように追加します。
vi site-config/security/customer-provided-ingress-certificate.yaml |
⑤kustomization.yamlを開き、以下の内容を追加します。
SAS Viyaの環境が構築済みの場合は、以下のドメイン名定義の部分をSSL証明書と合わせて修正します。
また、既存のSAS Viya環境がcert-managerあるいはopensslを利用し、セルフサインの証明書を生成している場合は、関連の内容を削除する必要があります。
例えば、opensslを使用している場合は、下記の行のような内容を削除またはコメントアウトする必要があります。
完了したら、kustomization.yamlファイルを保存します。
⑤SAS Viyaをデプロイし、すべてのポッドが起動完了するまで待ちます。
⑥SAS Viyaの起動が完了したら、ブラウザから設定したドメイン名でアクセスし、証明書が問題なく動作していることを確認します。
まとめ
以上で、SAS ViyaとAzure ADを連携するSSOログイン方式の設定のための準備作業について紹介しました。次の第二部の記事では、SAS Viyaでの認証と認可の設定、またAzure ADとの連携方法についてステップバイステップで詳細に解説します。これにより、SAS ViyaとAzure ADの連携をより深く理解し、実際の作業に役立てることができます。