認証プロセスの概要
SAML 認証では、ユーザー名やパスワードなどの ID 情報を Application Server に渡しません。代わりに、ユーザーは Google や Facebook などのサードパーティの ID プロバイダーで認証を行います。そして、その信頼できるサードパーティが認証成功の証明を Application Server に渡します。 ユーザーアプリケーションにおける SAML 認証プロセスは、次の手順で構成されます。- サードパーティの ID プロバイダーで認証する
- サードパーティの ID プロバイダーからユーザーの SAML 認証データを取得する
- SAML 認証データを Application Server に送信する
- Application Server から認証済みチケットを受け取る
ユーザーアカウントは FlexiCapture データベース内に存在し、必要な権限をすべて持っている必要があります。
実装
SAML データを取得する
サードパーティのID プロバイダーから取得した SAML データは、次の形式になります (この例は OneLogin のものです) :SAML データをFlexiCapture 12 Application Serverに送信する
SAML データをBase64でエンコードし、https://<Application Server>/Flexicapture12/Server/Saml にPOSTリクエストを送信してApplication Serverに送ります。SAML データを含むfieldの名前は SAMLResponse にする必要があります。
https://<ApplicationServer>/Flexicapture12/Server/Saml?Tenant=MyTenantName
認証を機能させるには、SAML データ内の識別子と一致するログイン名を持つユーザーが Application Server に登録されている必要があります。/samlp:Response/saml:Assertion/saml:Subject/saml:NameID field の値がログイン名として使用されます。
Application Server は次のようなレスポンスを返します。
<ticket> タグ内の値は、認証済みの FlexiCapture 12 チケットです。このチケットを使用すると、認証が必要なすべての Application Server インターフェイスに対して呼び出しを行うことができます。FlexiCapture のウェブサービスに対するリクエストは、FlexiCapture 認証を使用して送信する必要があります (https://<ApplicationServer>/flexicapture12/Server/FCAuth/ または https://<ApplicationServer>/flexicapture12/Server/MobileApp/ で始まるアドレス) 。
認証済みの FlexiCapture 12 チケットの使用
cookie ファイル (ファイル名はFlexiCaptureTmpPrn である必要があります) または Authorization: Bearer ヘッダーを使って、チケットをサーバーに渡せます。例:
FlexiCaptureTmpPrn、もう 1 つは AuthTicket ヘッダーです。
チケットは一定時間が経過すると期限切れになるため、次のリクエストには更新されたチケットを使用してください。
Application Server で信頼できる証明書を設定する
Application Server は、ID プロバイダーから受信したデータを検証します。Application Server がこのデータを信頼するには、カスタム証明書でデータに署名してください。発行元の認証局は、Application Server の信頼された認証局データベースに含まれている必要があります。 証明書を ABBYY FlexiCapture データベースにインポートします。以後、この証明書を使用してデータが検証されます。詳しくは、Single Sign-On の設定を参照してください。 検証に失敗した場合、Application Server はWeb.config ファイルの <appSettings> 内にある AllowMixedModeCertificateValidation パラメーターを参照します。このパラメーターが true の場合、検証には Trusted Root Certification Authorities フォルダー内の証明書が使用されます。このフォルダーは、Application Server を実行しているコンピューターの Local Computer 証明書ストア内にあります。
データベースに証明書がない場合、検証は Trusted Root Certification Authorities フォルダー内の証明書を使用して実行されます。その際、AllowMixedModeCertificateValidation パラメーターは無視されます。
sample プロジェクトおよび付属資料は SAML_Example.zip として入手できます。