# SAML の基礎

Security Assertion Markup Language（SAML）は、ID プロバイダーとサービスプロバイダーが認証情報をやりとりするための標準規格です。SAML 認証はシングルサインオンのメカニズムであり、中央の ID プロバイダー（IdP）がユーザー認証を行う一方で、サービスプロバイダー（SP）は、認証の結果に基づいてアクセス制御だけを行うという仕組みです。

SAML 認証の主なメリットを以下にまとめます。

* サービスプロバイダーが独自のユーザーデータベースを維持する必要はありません。ユーザー情報は、ID プロバイダー側の中央データベースで保管されます。ユーザーの追加や削除が必要になった場合でも、1 つのデータベースで操作を行うだけで十分です。
* サービスプロバイダーは、ユーザー確認を独自に行わなくてよいので、 サービスプロバイダーの側でセキュアな認証を実装する必要がありません。
* シングルサインオンなので、ユーザーのログオンは 1 回だけで済みます。その後のサインオン（ユーザーが別のアプリケーションを起動するときのサインオン）はすべて自動的に行われます。
* サインインのときにユーザーが資格情報を入力する必要はありません。
* ユーザーがパスワードを記憶したり更新したりする必要はありません。
* 脆弱なパスワードが存在しません。

**シングルサインオンのプロセス**

SAML シングルサインオンは、サービスプロバイダーの側からも、ID プロバイダーの側からも開始できます。その 2 つのシナリオを以下にまとめます。

サービスプロバイダーの側から SAML シングルサインオンのプロセスを開始する場合は、以下のような流れになります。

1. ユーザーは Parallels Client（[サポートされているバージョン](https://download.parallels.com/ras/v19/docs/ja_JP/Parallels-RAS-19-Administrators-Guide/45483.htm)のいずれか）を開き、サービスプロバイダーに接続します。
2. サービスプロバイダーが ID プロバイダーにメッセージを送り、ユーザー認証を依頼します。
3. ID プロバイダーがユーザーにユーザー名とパスワード入力を求めます。
4. ユーザーの資格情報が正しければ、認証応答（アサーション）がクライアントに送られ、その後サービスプロバイダーに渡されます。その応答には、ユーザーのログインが成功したことや、ID プロバイダーがアサーションに署名したことを示すメッセージが含まれています。
5. ユーザーに公開アプリケーションのリストが表示されます。ユーザーがアプリケーションを起動するときに、資格情報を入力する必要はありません。

ID プロバイダーの側からシングルサインオンを開始する場合の基本的な流れは、以下の通りです。

1. ユーザーがウェブブラウザーから ID プロバイダーにログインすると、社内向けアプリケーション（Parallels RAS など）のリストが表示されます。
2. Parallels RAS を選択すると、アサーションがクライアントに送られ、その後 Parallels RAS で設定されているサービスプロバイダーに渡されます。
3. ユーザーに RAS の公開アプリケーションのリストが表示されます。
4. ユーザーがアプリケーションを起動するときに、資格情報を入力する必要はありません。
