Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
study:java:sharepointonline:poc [2021/07/09 09:30] – [Reference] banana | study:java:sharepointonline:poc [2021/07/09 09:55] (現在) – [POC段階4] banana | ||
---|---|---|---|
行 2: | 行 2: | ||
本稿では、Sharepoint onlineのRESTサービスを利用するための処理フローを紹介します。\\ | 本稿では、Sharepoint onlineのRESTサービスを利用するための処理フローを紹介します。\\ | ||
Javaの実装例は別の記事で紹介する予定です。 | Javaの実装例は別の記事で紹介する予定です。 | ||
+ | {{keywords> | ||
- | ===== on-premise環境のSharepointの違いについて ===== | + | ===== on-premise環境のSharepoint連携との違いについて ===== |
以前の投稿(([[study: | 以前の投稿(([[study: | ||
Sharepoint online連携においてon-premise環境と大きい違いは以下の2点です。\\ | Sharepoint online連携においてon-premise環境と大きい違いは以下の2点です。\\ | ||
行 9: | 行 10: | ||
- SSL接続(TLS) | - SSL接続(TLS) | ||
まず、認証方式ですがon-premiseと同じくユーザー認証((Add-in認証方式もありますが、認証に使うクライアントシークレットの有効期限がある為、ユーザー認証を選択しました。))を使いますが、認証スキムが異なります。\\ | まず、認証方式ですがon-premiseと同じくユーザー認証((Add-in認証方式もありますが、認証に使うクライアントシークレットの有効期限がある為、ユーザー認証を選択しました。))を使いますが、認証スキムが異なります。\\ | ||
+ | on-premise環境ではNTLM認証を使いましたが、cloud環境ではSAML認証を使います。また認証cookieも利用します。\\ | ||
SSL接続については、POC段階ではツール((curl, | SSL接続については、POC段階ではツール((curl, | ||
===== POCの概要 ===== | ===== POCの概要 ===== | ||
行 25: | 行 27: | ||
https:// | https:// | ||
</ | </ | ||
- | ここで、%%%(UserAccount)%%に利用アカウント(XXX.onmicrosoft.com若しくは独自ドメインのアカウント)を代入します。 | + | ここで、%%%(UserAccount)%%に利用アカウント(XXX.onmicrosoft.com若しくは独自ドメインのアカウント)を代入します。\\ |
- | ADFSを利用する場合の回答例を下に示します。 | + | ADFSを利用している場合のResponse例を下に示します。 |
<code xml> | <code xml> | ||
< | < | ||
行 49: | 行 51: | ||
</ | </ | ||
</ | </ | ||
+ | ここで、%%< | ||
+ | 上記の例ではtrueですので、ADFS環境になります。\\ | ||
+ | また、%%< | ||
===== POC段階2 ===== | ===== POC段階2 ===== | ||
- | SAML Assertionを取得するために、前段階で取得した%%STSAuthURL%%宛にSOAP | + | SAML Security tokenを取得するために、前段階で取得した%%STSAuthURL%%宛にSOAPメッセージをPOST送信します。 |
- | SOAP Envelopeを下に示します。 | + | SOAPメッセージ例を下に示します。 |
<code xml> | <code xml> | ||
< | < | ||
行 86: | 行 90: | ||
</ | </ | ||
ここで、%(username), | ここで、%(username), | ||
- | また、上記xmlを送信する際、Headerに下記を追加します。 | + | また、上記xmlを送信する際、Requestヘッダーに下記を追加します。 |
< | < | ||
| | ||
</ | </ | ||
- | 回答のxmlから%%< | + | Responseのxmlから%%< |
こちらのraw typeテキスト((Pretty typeではエラーになります。))がBinary token取得のために必要です。\\ | こちらのraw typeテキスト((Pretty typeではエラーになります。))がBinary token取得のために必要です。\\ | ||
- | SAML Assertionの例は、内容が長いのと見てもチンプンカンプンなのでLOL割愛します。 | + | SAML Security tokenの例は、内容が長いのと見てもチンプンカンプンなのでLOL割愛します。 |
===== POC段階3 ===== | ===== POC段階3 ===== | ||
- | Binary tokenを取得するために、前段階で取得したSAML | + | Binary tokenを取得するために、前段階で取得したSAML |
((ここからは外部にアクセスするため、会社等のProxy環境にある場合は、Proxy認証が必要になります。)) | ((ここからは外部にアクセスするため、会社等のProxy環境にある場合は、Proxy認証が必要になります。)) | ||
< | < | ||
行 129: | 行 133: | ||
</ | </ | ||
- | ここで、%(samltoken)には、SAML | + | ここで、%(samltoken)には、SAML |
続いて、%(siteurl)には、SharepointサイトURLを代入します。 | 続いて、%(siteurl)には、SharepointサイトURLを代入します。 | ||
- | また、上記xmlを送信する際、Headerに下記を追加します。 | + | また、上記xmlを送信する際、Requestヘッダーに下記を追加します。 |
< | < | ||
| | ||
行 148: | 行 152: | ||
xxxxには、独自ドメイン(エイリアス)が入ります。\\ | xxxxには、独自ドメイン(エイリアス)が入ります。\\ | ||
正常の場合は、HTTP code=302(FOUND)が帰ってきます。\\ | 正常の場合は、HTTP code=302(FOUND)が帰ってきます。\\ | ||
- | そして、下記の2つのcookieがResponse | + | そして、下記の2つのcookieがResponseヘッダーに含まれているのが確認できます。((内容が長いため、一部分をカットしました。)) |
< | < | ||
Set-Cookie: rtFa=I4phG2qFs+pUekvF4a03qJ0Pt79SUAzM3bLl5CMkZbgmODJDRjhFQjQtRTEzQi; | Set-Cookie: rtFa=I4phG2qFs+pUekvF4a03qJ0Pt79SUAzM3bLl5CMkZbgmODJDRjhFQjQtRTEzQi; | ||
行 155: | 行 159: | ||
Set-Cookie: FedAuth=77u/ | Set-Cookie: FedAuth=77u/ | ||
</ | </ | ||
- | こちらの取得したcookieを次のリクエストを送信する際、Cookieヘッダーに追加します。 | + | こちらの取得したcookieを次のリクエストを送信する際、Cookieヘッダーに追加します。\\ |
+ | 以降のRESTサービスへのリクエストは、認証cookieさえあれば利用可能です。 | ||
===== Reference ===== | ===== Reference ===== | ||
* [[http:// | * [[http:// | ||
行 161: | 行 166: | ||
* [[https:// | * [[https:// | ||
+ | ~~DISCUSSION~~ | ||