会社のロゴの色に合わせたいのですが、標準では用意されていませんね。ということでカスタマイズをしたいと思います。
SharePoint Online Management Shellは32ビットPCでは利用できないようです。
以下を参考に...
まずはSharePoint Online Management Shellをインストールと思いまして...
いきなりアウトです。ああ32ビットマシーンだったわ。インストールできないですね。
と思いましたが、もしかしてPowerShell 3.0がない?
もう一度やってみたけど、やっぱり64ビットしか機能しないようですね。
ああ、REST APIになるなぁ。
取りあえず、色の定義ファイルだけは作っておきます。
{
"themePrimary": "#139244",
"themeLighterAlt": "#f2fbf5",
"themeLighter": "#ccedd9",
"themeLight": "#a4deba",
"themeTertiary": "#5abd80",
"themeSecondary": "#259f54",
"themeDarkAlt": "#11833d",
"themeDark": "#0e6e33",
"themeDarker": "#0b5126",
"neutralLighterAlt": "#faf9f8",
"neutralLighter": "#f3f2f1",
"neutralLight": "#edebe9",
"neutralQuaternaryAlt": "#e1dfdd",
"neutralQuaternary": "#d0d0d0",
"neutralTertiaryAlt": "#c8c6c4",
"neutralTertiary": "#a19f9d",
"neutralSecondary": "#605e5c",
"neutralSecondaryAlt": "#8a8886",
"neutralPrimaryAlt": "#3b3a39",
"neutralPrimary": "#323130",
"neutralDark": "#201f1e",
"black": "#000000",
"white": "#ffffff"
}
仕方ないのでREST API をやってみよう。
まったく仕様を理解していないのでエラーが出た時に分かりやすいようにCURLコマンドを使って接続してみたいと思います。接続方法が分かればApexからコールアウトしてもいいかもしれません。(他の言語を最近触ってないのでよく分からん)
以下を参考にさせていただきました。
まずは、SharePoint Online へリクエストを行い RpsContextCookie を取得します。
正直結果を見てもよく分かりません。cookie1.txtができてました。(コードブロックを使うとスクロールされて一覧性が損なわれるので今回は使いません)
curl -i -X POST -H "Content-Length:0" -c cookie1.txt "https://[ここを変える].sharepoint.com/_layouts/Authenticate.aspx?Source="
もしかして、httpsで接続できてないと思って以下を試しましたが、効果があったのかは全く分かりません。変わったような感じはないですね。
/usr/bin/curl -s -S -tlsv1.2 --cacert ./cacert.pem --compressed -i -X POST -H "Content-Length:0" -c cookie1.txt "https://[ここを変える].sharepoint.com/_layouts/Authenticate.aspx?Source="
実行すると cookie1.txt に RpsContextCookie が格納されるので、次はそれを使って Office 365 の STS へ SAML リクエストを行います。
一覧性がないですが、どうしてもうまく表示できないのでコードブロック使っています。
curl -i -X POST -b cookie1.txt -d "<s:Envelope xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://www.w3.org/2005/08/addressing' xmlns:u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'><s:Header><a:Action s:mustUnderstand='1'>http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand='1'>https://login.microsoftonline.com/extSTS.srf</a:To><o:Security s:mustUnderstand='1' xmlns:o='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'><o:UsernameToken><o:Username>[ログイン名]</o:Username><o:Password>[パスワード]</o:Password></o:UsernameToken></o:Security></s:Header><s:Body><t:RequestSecurityToken xmlns:t='http://schemas.xmlsoap.org/ws/2005/02/trust'><wsp:AppliesTo xmlns:wsp='http://schemas.xmlsoap.org/ws/2004/09/policy'><a:EndpointReference><a:Address>https://tenant.sharepoint.com/</a:Address></a:EndpointReference></wsp:AppliesTo><t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType></t:RequestSecurityToken></s:Body></s:Envelope>" "https://login.microsoftonline.com/extSTS.srf"
このレスポンスとして XML が返ってくるので、その中から を探し、この BinarySecurityToken をメモしておきます。ドラクエのふっかつのじゅもんを思い出しますね。メモしたもののサンプルが下記です。
"t=EwAoA06hBwAUNfDkMme61kIdXqvj9tWnUbHtXWEAAX/dzAV3qKsNmyl6otuAux8+BmHuN+xS9xjU/Iz+KPPcQe4CXRLvzH5Z0xFYmZVsHYOAG063s+yYNTk3jtp6kMzuOlIEBPDxcu21WZYLYAm/O9KLjLLBCJWWwpFlnsnSCIa9GLmrDzNljwFI44fQ/aRTz06MuWUSVA3PfXU2ojqVmV33Zm936zhGtg5+ZD8BqpJK/h665KlAZ6/cR1MaUYgvbZxB+Ewbbh78IaCR/qfOTXlEcYnweCgYIQvztVbhIVG8odVGXTB3RXC/jI4Y6InMfuN2fR1y4RE2rBCjOTSiF0oGaULCYlEnFfyb3gl4iT1bV1fMXYCJnC/6j15Q2zcDZgAACE0js/MdmYDe+AGzTJKfKxJ/YqSAy3pClPWgiQwXytP5BcnTTzJXyOj8aAb4GuDHUWqSy2J1YEhKpLnBdaZ9HfCnqtYsyTSexuM7e+LXzSglOk7mAOixrPlRGLpviZyXm9dg3+FnQ3PdqkoJMJUuuihVkTq4Og/2viWk0ip9Mc6pLS855sDES70D3Q/xl8BNCrUHPHIMrHU0Kbenr1tC7jaKs7mUr0de0Gjp5GMvNL5TDjKEe6SEwmDFLWXcIfrIHIp4K7xeGf5O5C5eN6EiccoVkJYm/Srq1JZpdTTP44us2mS7wgzSy/qrOrDbIR/CO007GXxKBNhRowMZSxS0SnOGb8Cn6P4bKWc5+YqLOIve/0kcQNtgUkP6LsenvuG0JM2KCFylpXCBut/2Z6l5aWVho1jqn5O2IA1Gws7ZlOQHjY0S7pR+FkSVGFad+x6JUe6mFzVrsW0bg3vvkChgC5gLb8jeEn1rnBSSCnPZqsMkQFsPd9RfLwZGDWIAOYAtEuJ3teepT/W/44oXCKF1SI3CIqRGUkofiRX8sl3qHZwNpGmKN7dh34Ci3AD9xiRl7NjW23lw1IWmfQh7XHSieFFYRCEUPc5DU3RykrfwLcgnqmaBpb4veAclpBoIkT7suGgF957USbT4FOlB0s9IiHOPfgbahK+xq/kIVPoP7KAwD4RfAg==&p="
次はこの BinarySecurityToken を使って SharePoint Online へ認証リクエストを行ない、Authentication Cookie を取得します。
curl -i -X POST -d "t=EwAoA06hBwAUNfDkMme61kIdXqvj9tWnUbHtXWEAAX/dzAV3qKsNmyl6otuAux8+BmHuN+xS9xjU/Iz+KPPcQe4CXRLvzH5Z0xFYmZVsHYOAG063s+yYNTk3jtp6kMzuOlIEBPDxcu21WZYLYAm/O9KLjLLBCJWWwpFlnsnSCIa9GLmrDzNljwFI44fQ/aRTz06MuWUSVA3PfXU2ojqVmV33Zm936zhGtg5+ZD8BqpJK/h665KlAZ6/cR1MaUYgvbZxB+Ewbbh78IaCR/qfOTXlEcYnweCgYIQvztVbhIVG8odVGXTB3RXC/jI4Y6InMfuN2fR1y4RE2rBCjOTSiF0oGaULCYlEnFfyb3gl4iT1bV1fMXYCJnC/6j15Q2zcDZgAACE0js/MdmYDe+AGzTJKfKxJ/YqSAy3pClPWgiQwXytP5BcnTTzJXyOj8aAb4GuDHUWqSy2J1YEhKpLnBdaZ9HfCnqtYsyTSexuM7e+LXzSglOk7mAOixrPlRGLpviZyXm9dg3+FnQ3PdqkoJMJUuuihVkTq4Og/2viWk0ip9Mc6pLS855sDES70D3Q/xl8BNCrUHPHIMrHU0Kbenr1tC7jaKs7mUr0de0Gjp5GMvNL5TDjKEe6SEwmDFLWXcIfrIHIp4K7xeGf5O5C5eN6EiccoVkJYm/Srq1JZpdTTP44us2mS7wgzSy/qrOrDbIR/CO007GXxKBNhRowMZSxS0SnOGb8Cn6P4bKWc5+YqLOIve/0kcQNtgUkP6LsenvuG0JM2KCFylpXCBut/2Z6l5aWVho1jqn5O2IA1Gws7ZlOQHjY0S7pR+FkSVGFad+x6JUe6mFzVrsW0bg3vvkChgC5gLb8jeEn1rnBSSCnPZqsMkQFsPd9RfLwZGDWIAOYAtEuJ3teepT/W/44oXCKF1SI3CIqRGUkofiRX8sl3qHZwNpGmKN7dh34Ci3AD9xiRl7NjW23lw1IWmfQh7XHSieFFYRCEUPc5DU3RykrfwLcgnqmaBpb4veAclpBoIkT7suGgF957USbT4FOlB0s9IiHOPfgbahK+xq/kIVPoP7KAwD4RfAg==&p=" -c cookie2.txt "https://[ここを変える].sharepoint.com/_forms/default.aspx?wa=wsignin1.0"
ここまで来ると、cookie2.txt に SharePoint Online の REST API を呼び出すための rtFa、FedAuth が揃うので、いよいよこれを使って SharePoint Online の REST API を呼び出すことができます。
ここから、本当に使えるのかを確かめたいけど....
この2つ目をみると色々有益なエンドポイントが書かれているなぁ。
curl -i -X POST -H "Content-Length:0" -b cookie2.txt "https://[ここを変える].sharepoint.com/sites/teamsite/_api/contextinfo"
大事なのはここだな。おお、Titleが取得できたようです。 こんな感じで使えるのかもしれませんね。
FKD Portal Site
<?xml version="1.0" encoding="utf-8"?><d:Title xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">FKD Portal Site</d:Title>