Quantcast
Channel: システム運用日記
Viewing all 214 articles
Browse latest View live

JamfからIntuneへの登録がうまくいかないときには・・・

$
0
0

JamfからIntune(すべてのデバイス)への登録がうまくいかないときには・・・

macOSが多いと管理はJamf一択だとよく言われます。
実際に色々なソフトを試してみてやはり便利だったのでJamfを選択しました。(稟議通ってよかった(笑))
情シス界隈ではJamfが導入されているかで転職を決める人もいるそうです(笑)
Jamf + Intuneは黄金パターンのようです多分(2019/12現在)

Jamfのインベントリ情報をIntuneへ渡し、AzureADの条件付きアクセスを利用するということまで見越して連携をさせました。
が、下記のような状態になりはまってしまったので備忘録も兼ねて残します。

現象

  1. JamfインベントリからAzureADデバイスには表示される
  2. Azure側のすべてのデバイスには表示されない
  3. AzureADデバイスから見ると「管理」ボタンが押せない

絵でみるとこんな感じ
ここにはいる↓ちゃんとMacOSってでてる AzureAD Registerdになっている

しかしこっちには同じマシンが表示されてこない
なのでデバイス準拠ポリシーが確認できない(?)

JamfのSelf Serviceから登録をやり直してもらってもうまくいかない状況でしばらく悩んでいたのですが、
すべてのデバイスに表示されていない端末上で下記コマンドを実行してもらい、AzureADへのログインを実施してもらうことで改善しました

sudo /usr/local/jamf/bin/jamfAAD gatherAADInfo -verbose

このコマンドを実行すると下記の画面が表示されるので、AADのIDとパスワードでログインしてもらいます。

その後しばらくすると「すべてのデバイス」に対象端末名が表示されコンプライアンスポリシーの確認ができるようになります
ここまでくれば条件付きアクセスが使えるようになるので、ポリシーにあわせて定義しましょう!

これでも表示されてこない場合には、JamfとIntune統合の途中手順の「管理者が承認しているURLを開く」を押し、アクセス許可を承認してみてください
App has been addedとなったことを確認します

 

まとめ

JamfとIntuneを導入したからといってすぐに何かがよくなるわけでもないですし、ツール入れて満足したら意味がなく宝の持ち腐れです。
認証認可の話しがよくでてきますが、企業文化、会社ポリシーとして認証認可をどうするべきなのかを考えツール選定もしていくべきと思います
Jamf + Intuneはいいぞ!

 

Office365アドベントカレンダー記事も見てね!

 

 


Microsoft Defender ATP for Mac をjamfを利用して配布する

$
0
0

Microsoft Defender ATP for Macをjamfを利用して配布する

M365E5を試用してみているので、真っ先にMDATPをjamfで配れるようにしておこうと思い設定してみました。

前提条件

  • M365 E5のライセンスを持っていること
  • jamf proの基本設定が完了していること

Microsoft Defender Security Centerへの入口を探す

docsのこの記事を読んでいたんですが、Microsoft Defender Security Centerってどこにあんねん!というのがまず最初でした(笑)
検索してURLを探し出せたもののこれどこかから導線あるの?と思いぼやいてみたところ教えていただきました!(感謝!)

ってかこれ初見じゃ絶対わからん・・・結構ぽちぽちやったんですがまだまだでした・・・

初期セットアップを実施する

導線をたどり初回のアクセスだとこんな画面が表示されるので、【Next】をクリックします。

組織のサイズ(Select your organization size)をあわせて【Next】をクリックします

【Continue】をクリックします

インスタンスが作成されるまでしばらく待ちます
パッケージファイルのダウンロード画面が表示されるので、「Deployment method」から「Mobile Device Management/Microsoft Intune」を選択し、【Download package】をクリックします。

ダウンロードが完了したら、【Start using Micorosft Defender ATP】をクリックします

【Proceed anyway】をクリックします

ダッシュボードが表示されるので、左下にある「Settings」→Machine management [Onboarding]をクリックし、「Linux,macOS,iOS and Android」を選択します。

Deployment methodから「Mobile Device Management/Microsoft Intune」を選択し、
【Download installation package】と【Download onboarding package】をクリックし保存します

保存したファイルを解凍します。中身はこんな感じでした

jamfの設定をしよう!

ここからjamf側の設定をしていきます

構成プロファイルの設定

【コンピュータ】をクリックします

【構成プロファイル】をクリックします

【新規】をクリックします

 

名称にお好きな名前をつけます。ここでは「Microsoft Defender ATP」としました
カテゴリは環境にもよりますが、Securityカテゴリを設定してあるのでSecurityを選択しています

左ペインから「カスタム設定」を選択し、【構成】をクリックします

環境設定ドメインに「com.microsoft.wdav.atp」と入力し、【PLISTファイルのアップロード】をクリックします

【ファイルを選択】をクリックし、ダウンロードしたファイルの中にある「jamf/WindowsDefenderATPOnboarding.plist」をアップロードします

左ペインから「認証済みカーネル拡張」を選択し、【構成】をクリックします

認証済みチームID欄の表示名に「Microsoft」と入力し、チームIDに「UBF8T346G9」と入力します

ここをすっかり忘れていてはまったのですが、Catalinaからは新しいセキュリティ機能とプライバシー強化がされいるためPPPCの設定をしておく必要があります
ここを定義しないとeicarテストファイルも検知されません

左ペインから「プライバシー環境設定ポリシーコントロール」を選択し、【構成】をクリックします

識別子に、「com.microsoft.wdav」と入力し。コード要件に、「”com.microsoft.wdav” and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = UBF8T346G9」と入力します
APP OR SERVICEから「SystemPolicyAllFiles」を選択し、Accessを「Allow」とし【Save】をクリックします

パッケージファイルの設定

右上にある歯車アイコンをクリックします。

「コンピュータの管理」→【パッケージ】をクリックします
【新規】をクリックします

【ファイルを選択】をクリックし、ダウンロードしたwdav.pkgを選択しアップロードします
【保存】をクリックします
カテゴリは必要に応じて変更します

ポリシーを設定する

【ポリシー】をクリックします

【新規】をクリックします

表示名に「Microsoft Defender ATP」と入力し、カテゴリを「Security」に設定しました。
トリガーの「Recurring Check-in」にチェックを入れ、実行頻度を「Once per computer」に設定します
左ペインからパッケージを選択し、【Configure】をクリックします

アップロードしたパッケージの右側にある【追加】をクリックします
「Scope」タブをクリックし、Microsoft Defender ATPを展開するマシンやグループを選択します。

【保存】をクリックします

 

ログを確認する

作成したポリシーを開き、右下のほうにある【ログ】をクリックします

設定によりますが、チェックインのサイクル時(この環境では15分毎)にポリシーが動作し問題なければSTATUSが「Completed」になります。
/var/log/jamf.log にログファイルがあるのでこちらを確認すると以下のように動作していることがわかります

Mon Dec 23 18:19:20 COMPUTER jamf[5618]: Checking for policies triggered by "recurring check-in" for user "username"...
Mon Dec 23 18:19:25 COMPUTER jamf[5618]: Executing Policy Microsoft Defender ATP
Mon Dec 23 18:23:07 COMPUTER jamf[5618]: Verifying package integrity...
Mon Dec 23 18:23:08 COMPUTER jamf[5618]: Installing wdav.pkg...
Mon Dec 23 18:23:55 COMPUTER jamf[5618]: Successfully installed wdav.pkg.
Mon Dec 23 18:23:55 COMPUTER jamf[5618]: Checking for patches...
Mon Dec 23 18:23:56 COMPUTER jamf[5618]: No patch policies were found.

 

Microsoft Defender ATPの動作を確認する

インストールが正常に完了すると右上のメニューバーに、おなじみの(?)盾アイコンが表示されます
盾アイコンを右クリックするとメニューが表示され、詳細画面を表示することができます。
インストール直後なので定義ファイルが最新ではありませんね

Microsoft Defender Security Centerのマシンリストを見ると、MDATPをインストールしたマシン名が表示されていました

 

EICARテストファイルで検知するか試してみる

eicarテストファイルをダウンロードし検知されるかをテストしてみました。
Microsoft Defender Security Center上にアラートとして表示されてきます。

この導線で遷移していくとよく見る画面が見えるようですね

TutorialにあるPowerShellを動かしてみると実行されたPowerShellの中身も見る事ができるのが確認できました

 

MCASと統合してどこまでできるのかも確認してみたいと思います!

 

 

 

 

 

Intuneでexeファイルを配布する際のアンインストールGUIDを確認する方法

$
0
0

Intuneでexeファイルを配布する際のアンインストールGUIDを確認する方法

Intuneでexeを配布する際に、アンインストールコマンドを指定すると思いますが、
そちらのGUIDを簡単に確認するためのコマンドです。

Intuneで設定する際のこちらのアンインストールコマンドですね

PowerShellを起動し、下記コマンドを入力します

 get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

少し待つとずらずらと表示されるので、該当のGUIDを確認し、アンインストールコマンドに定義します

Nameで絞り込みたい場合は下記のようにし、実行します

 get-wmiobject Win32_Product -Filter "name like '%google%'" | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

結果
IdentifyingNumber                      Name                 LocalPackage
-----------------                      ----                 ------------
{EC704706-215F-3E83-98BF-028097043E27} Google Chrome        C:\WINDOWS\Installer\155c5ab.msi
{60EC980A-BDA2-4CB6-A427-B07A5498B4CA} Google Update Helper C:\WINDOWS\Installer\8bb5d32.msi

わざわざレジストリエディタを開いて確認する必要はなくなるので便利になりますね!

Office365グループのメールアドレスドメインを変更する

$
0
0

Office365グループのメールアドレスドメインを変更する

PowerShellでExchangeOnlineに接続します

Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

 

多要素認証利用の場合にはIEでExchange管理センターにいき、「ハイブリッド」→ Exchange Online PowerShell Moduleの【構成】をクリックします

起動したPowerShellで下記コマンドを実行し接続します

Connect-EXOPSSession -UserPrincipalName hoge@hogehoge.onmicrosoft.com

下記コマンドを利用して、ドメインを変更したいグループを指定しアドレスを変更します

Set-UnifiedGroup -Identity "group01" -EmailAddresses: @{Add="prov@example2.jp"}

追加したメアドをプライマリーアドレスに変更します

Set-UnifiedGroup -Identity "group01" -PrimarySmtpAddress "prov@example2.jp"

必要に応じて元のドメインのグループメールアドレスをセカンダリメールアドレスから削除します。

Set-UnifiedGroup -Identity "group01" -EmailAddresses: @{Remove="prov@example2.jp"}

プライマリーメールアドレスが変更されたことを確認します

Get-UnifiedGroup -Identity "group01"

GUI上でみるとこうなります
これが
こう

なんでこんなことをしたかというと、動的グループとして設定しG Suiteの複数ドメインへプロビジョニングをしたかったからです。
うまく使えばいろいろとAADに集約できるのではないかと思います

 

 

AzureADを利用してDATADOGへSAMLログインを設定する

$
0
0

Azure Active Directoryを利用してDatadogへSAMLログインする方法

AADのユーザー情報を利用して、監視システムであるDATADOGへSAMLログインする設定です

DATADOGのSAMLページを確認する

  1. DATADOGにログインし、ユーザー名をクリックし、【Configure SAML】をクリックします
  2. SAML設定に必要な情報が表示されるので、「Service Provider Entity ID」と「Assertion Consumer Service URL」を控えておきます。

AzureADにアプリケーションを登録する

お約束的な感じですが、まずはエンタープライズアプリケーションとしてAADへ登録します

  1. AzurePortalへログインします
  2. 【Azure Active Directory】を選択します
  3. 「エンタープライズアプリケーション」→【新しいアプリケーション】をクリックします
  4. 【ギャラリー以外のアプリケーション】をクリックします
  5. 名前欄に任意の名前を入力し、【追加】をクリックします
  6. 「シングルサインオン」→【SAML】をクリックします
    (画像は使いまわしなのでkintone)
  7. 基本的なSAML構成にある鉛筆マークをクリックします
  8. エンティティIDに、DATADOGの設定ページで控えた「Service Provier Entity ID」の値をコピーします
  9. 応答URLに、DATADOGの設定ページで控えた「Assertion Consumer Service URL」の値をコピーします
  10. 【保存】をクリックします
  11. 「ユーザー属性とクレーム」横にある鉛筆マークをクリックします
  12. 一意のユーザー識別子(名前ID)をクリックします
  13. ソース属性を、user.mail に変更します
  14. フェデレーションメタデータXMLをダウンロードします
  15. DATADOGのSAML設定ページを開きます
  16. ダウンロードしたXMLファイルをDATADOGへアップロードします
  17. 【ファイルを選択】をクリックし、AzureADからダウンロードしたXMLファイルを指定します
  18. 【Enable】をクリックし、SAMLを有効化します
  19. SSO URLが表示されるので、表示されたURLをコピーします
  20. AzureADのSAML設定のサインオンURLへコピーしたURLを張り付け保存します
  21. SAMLログインを許可するユーザーまたはグループを割り当てます
    ユーザーを割り当てない場合、アサインエラーの表示がされログインすることができません

 

SAMLログインができるか確認する

  1. https://myapplications.microsoft.com/ へアクセスし、ログインします
  2. DATADOGアイコンをクリックします
  3. 【LOGIN with SAML】をクリックし、ログインできることを確認します

 

DATADOGで複数組織が構成されている場合のSAML設定方法

標準状態の場合DATADOGのSAML設定では、EntitiyIDが同じものになっておりこのまま別組織で利用するとEntityIDが重複しているためAzureAD側で「重複しているため登録できません」というエラーになり登録することができません。(当然ですが・・・)
そのため下記のような手順で登録していきます

  1. サポートへ連絡し、各組織にカスタムサブドメインを付与してもらいます
    該当ドキュメントはこちら
    https://docs.datadoghq.com/ja/account_management/multi_organization/#custom-sub-domains
  2. サブドメインをもとにSAML設定用のEntityID変更をサポートへ依頼する
    (各組織に対してadmin権限をもっているユーザーからの依頼でないと受付てくれないので、管理者権限をもったユーザーからサポートへ依頼してください)
    このとき、SAML Strictを設定しているとログインできなくなってしまう可能性があるため、依頼時にはSAML Strictを無効にしておきましょう
  3. 対応が完了すると、Entity ID等がサブドメインへ変更されていますので、変更されたEntityIDを利用してAzureAD側に設定をしていきます

組織ごとにログインアイコンができていくため、組織が多いとこうなります(笑)
組織ごとにアイコンを変更するとわかりやすくなっていいかと思います。
↓はテストもかねていたので全部同じアイコンです

LOGIN with SAMLはシームレスじゃない

やるとわかるのですが、毎回ログイン画面ページが表示されてしまい【LOGIN with SAML】をクリックしないとログインできません。
せっかくのSAML認証なのにこれはシームレスじゃなくてなんかださい(笑)
ので、サポートの方にもお聞きし下記手順で設定することで、この画面を表示させずにログインさせることができます

  1. Chrome等で該当組織のログインページを表示する
    ↓この画面
  2. 開発者コンソール等で「Login with SAML」の遷移先を確認します
  3. 確認した遷移先URLをAzureADのエンタープライズアプリケーションで設定したDATADOGのサインインURLに追加します
  4. 保存し、マイアプリポータルからDATADOGアイコンをクリックし、シームレスにログインできることを確認します
  5. 無事にログインできれば完了です

 

AzureADパスワードレスサインインの設定を有効化する

$
0
0

AzureADパスワードレスサインインの設定を有効化する

自分用メモです。

  1. Azure Active Directory管理センターを開きます
  2. 【セキュリティ】をクリックします
  3. 【認証方法】をクリックします
  4. 「Microsoft Authenticatorパスワードなしのサインイン」を選択し、下ペインにある「有効にする」を「はい」に設定します
    パスワードなしサインインを可能にするユーザーを絞りたければターゲットからユーザーやグループを選択します

Microsoft Authenticatorの設定

  1. MS Authenticatorに登録したアカウントの右上にある▽をタップし、【電話によるサインインを有効にする】をタップします
  2. 必要に応じてデバイス登録を行い、【続行】をクリックします
  3. 登録が完了すると次回のログインから数字をタップするだけでログインが可能になります
    ログイン時にこの画面が表示されるので
  4. 表示された番号をスマホ側でタップし選択、【承認】をタップすることでログインされます

設定しててそうだったのかと気づいたのですが、デバイス登録先は一つしか登録できないため
複数アカウントで、「電話によるサインインを有効にする」ことができませんでした。(悲
で調べてたらこちらに書かれていました

この新しい、強力な資格情報を作成するための前提条件の 1 つは、
Microsoft Authenticator アプリのインストール先となるデバイスが、
個々のユーザーに対し、Azure AD テナント内にも登録されていることです。
 現在のデバイス登録の制限により、デバイスは、1 つのテナントにしか登録できません。
 この制限は、電話によるサインインを有効にできるのは、Microsoft Authenticator アプリの職場または学校の 1 つのアカウントのみであることを意味します。

[!NOTE] デバイスの登録は、デバイスの管理、つまり "MDM" と同じではありません。 
この場合、Azure AD ディレクトリでデバイス ID とユーザー ID の両方が関連付けられるだけです。

参考URL:https://github.com/MicrosoftDocs/azure-docs.ja-jp/blob/master/articles/active-directory/authentication/howto-authentication-passwordless-phone.md

 

複数アカウントでもできるようにしてほしいなぁと思います。
承認をタップだけでログインする方法もあるので、そちらを利用するでもいいかもしれませんね

 

AutoPilotデバイスの登録をPower Shellからコマンド1つで完了させる方法

$
0
0

AutoPilotデバイスの登録をPower Shellからコマンド1つで完了させる方法

以前の記事のやり方の場合、一度CSVを出力し、出力したファイルをIntuneへインポートするという手順でしたが、
Upload-WindowsAutopilotDeviceInfoというコマンドを利用することで一度に登録までやってくれます。

下記手順でコマンドをインストールし、実行していきます。

install-script -Name Upload-WindowsAutopilotDeviceInfo

PATH Environment Variable Change
Your system has not been configured with a default script installation path yet, which means you can only run a script
by specifying the full path to the script file. This action places the script into the folder 'C:\Program
Files\WindowsPowerShell\Scripts', and adds that folder to your PATH environment variable. Do you want to add the script
 installation path 'C:\Program Files\WindowsPowerShell\Scripts' to the PATH environment variable?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

Untrusted repository
You are installing the scripts from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the scripts from
'PSGallery'?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): a
PS C:>

下記コマンドを実行する

PS C:\WINDOWS\system32> Upload-WindowsAutopilotDeviceInfo.ps1 -TenantName "example.com" -Verbose
詳細: Attempting to locate AzureAD module
詳細: AzureAD module detected, checking for latest version
詳細: Attempting to locate PSIntuneAuth module
詳細: Authentication module detected, checking for latest version
詳細: Checking for existing authentication token
詳細: Authentication token does not exist, requesting a new token
詳細: Gather device hash data from local machine
詳細: Constructing required JSON body based upon parameter input data for device hash upload
詳細: Attempting to post data for hardware hash upload


@odata.context            : https://graph.microsoft.com/beta/$metadata#deviceManagement/importedWindowsAutopilotDeviceI
                            dentities/$entity
id                        : XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX4
orderIdentifier           :
groupTag                  :
serialNumber              : 5CXXXXXXX
productKey                : WXXXX-XXXX-XXXXX-XXXXX
importId                  : f9XXX-XXXX-XXXX-XXXXXXXXXXXX
hardwareIdentifier        :
assignedUserPrincipalName :
state                     : @{deviceImportStatus=unknown; deviceRegistrationId=; deviceErrorCode=0; deviceErrorName=}

詳細: Attempting to perform a sync action in Autopilot

しばらくするとWindows AutoPilotデバイスに表示されてきます

 

一発で登録されるので便利ですね!

 

 

AzureAD G Suiteプロビジョニング用アカウントを作成する

$
0
0

Azure Active DirectoryからG Suiteへのプロビジョニング用アカウントを作成する

AADからG Suiteへのプロビジョニングをする際に管理者権限を持ったユーザーが必要となるのですが、
こちらのユーザーを通常の管理者アカウントにしてしまうと退職時等に再設定が必要になってしまいます
あまりよろしくないので、専用のアカウントを作成します。
G Suiteへプロビジョニング用アカウントを通常手順で追加してしまうと課金対象となってしまうため下記手順で専用アカウントを作成していきます

Cloud Identity Freeを有効にする

  1. G Suite管理コンソールにログインします
  2. 【お支払い】をクリックします
  3. 下にスクロールし、「サービスを有効にする」下にある【Cloud Identity Free】をクリックします
  4. 【開始する】をクリックします
  5. 同意にチェックをつけ、【次へ】をクリックします
  6. 運用方法によって、「G Suite Basicの自動割り当てをオフにする」にチェックを入れ、【次へ】をクリックします
    ※プロビジョニング専用アカウントでも課金するぜ!という方はチェックをつけずに【次へ】をクリックするといいと思います!
  7. 【次へ】をクリックします
  8. 登録されたことを確認します

AzureAD用 Cloud Identityアカウントを作成する

G Suite管理コンソールから通常通りの手順で、プロビジョニングに利用するためのアカウントを作成します
今回は下記のようにしています

AAD
Synchronizer
メールアドレス aad-synchronizer@example.com

 

  1. 管理コンソールから上記で作成したユーザーを表示します
  2. 「管理者の役割と権限」で【役割を割り当ててください】をクリックします
  3. 「特権管理者」の役割を有効にします
  4. 【保存】をクリックします

APIアクセスを有効にする

  1. 管理コンソールから、「セキュリティ」→【設定】をクリックします
  2. API権限からAPIが有効になっていることを確認します
    有効になっていない場合には有効化してください
  3. 【保存】をクリックします

 

AzureADでのプロビジョニング設定

こちらの記事にある設定時に利用するアカウントを、今回作成した専用アカウントでログインし承認すればOKです。

注意

こちらの方法をそのままやった場合G Suiteのライセンスが自動で割り当たらなくなります
プロビジョニング後に手動でライセンスを割り当てる等の対応が必要になりますのでご注意ください
GASや組織をうまくつくることで回避できるかと思います。


intuneを利用してリムーバブルディスクへの書き込みのみを禁止する

$
0
0

intuneを利用して、リムーバブルディスク(USBメモリ等)への書き込みのみを禁止する

intuneの標準ポリシーだとまだGPOほど細かく制御できないところがあるので、カスタムポリシーを利用して制御します。
USBメモリ等のリムーバブルディスクに対して、書き込みはできないが読み込みは許可するというポリシーを設定したかったので下記の設定を行いました
制御用のOMA-URIは下記でした

ポリシーセッティング OMA-URI データ型- ポリシー設定値
リムーバブルディスク書き込み禁止 ./vendor/msft/policy/config/Storage/RemovableDiskDenyWriteAccess 整数値 1

 

Intuneでカスタムポリシーを作成する

  1. Microsoft Endpoint Manager admin centerを開きます
  2. 「デバイス」→「構成プロファイル」→【プロファイルの作成】をクリックします
  3. 下記のように設定し、OMA-URIのカスタム設定にある【追加】をクリックします
    名前 わかりやすい名前
    プラットフォーム Windows10以降
    プロファイルの種類 カスタム

  4. 下記のように設定し、【OK】をクリックします
    名前(任意の名前) RemovableWriteAccessDisable
    説明
    OMA-URI ./vendor/msft/policy/config/Storage/RemovableDiskDenyWriteAccess
    データ型 整数
    1
  5. 【作成】をクリックします
  6. 作成したプロファイル名をクリックします
  7. 【割り当て】をクリックします
  8. ポリシーを適用したいグループを設定し、【保存】をクリックします
  9. しばらくするとポリシーが適用され、USBメモリ等への書き込みは拒否されますが、読み込みは可能という状態になります。

 

 

jamfを利用してリムーバブルディスクへの書き込みのみを禁止する

$
0
0

jamfを利用してリムーバブルディスクへの書き込みのみを禁止する

jamfを利用しなくても構成プロファイルを配布できるMDMであれば制御が可能です
ここではjamfを利用した場合の制御方法です。
intuneよりわかりやすい(笑)

  1. 「コンピュータ」→「構成プロファイル」→【新規】をクリックします
  2. 名称に好きな名前をつけ、配布方法を「Install Automatically」にします
  3. 「制限」→【構成】をクリックします。
  4. 「Media」タブをクリックします
  5. 下へスクロールし、「外部ディスク」にある「読み取り専用」にチェックを入れます
  6. 「Scope」タブをクリックし、プロファイルを適用させるグループやコンピュータ等を設定します
  7. 【保存】をクリックします
  8. プロファイルの適用状況はログで確認することができます

 

プロファイル適用後に外部ディスクへ書き込もうとしても書き込むことができなくなっています

 

jamf adminのURLを変更する方法

$
0
0

jamf adminのURLを変更する方法

初回起動時にJamfサーバへのURLを聞かれるのですが、間違ってURLを入力してしまったところ
Preference設定も開いてくれず、どうにもならくなり調べてもどのファイルかわからなかったので
情シスSlackで質問してみたところあっという間に解決しました。
備忘録として手順を残したいと思います。

初回起動時にはこういう形で表示されるやつです。

で、GUIで見えるところのこの部分を変更したいという感じ

 

plistか何かにあるはず!っと思い検索してたのですが、HITせず・・・。
最初 /Library/Preferences/com.jamfsoftware.jamf.plist のファイル?と思ったのですが、
こちらは違いました。
設定が記述されているファイルはこちらでした。
/Users/{username}/Library/Preferences/com.jamfsoftware.jss.plist

このファイル内に誤って入力してしまったサーバURLが記載されていたので、下記コマンドで書き換えます。

defaults write ~/Library/Preferences/com.jamfsoftware.jss.plist url "https://正しいURL.jamfcloud.com"

 

 

AzureADを利用して、boxへのSAMLログインを設定する

$
0
0

AzureADを利用して、boxへのSAMLログインを設定する

トライアルでboxを触っているので、SAML設定をしてみました。
備忘録もかねて記事にします

AzureADアプリケーションギャラリーから追加

boxはAzureADのアプリケーションギャラリーに存在するため、ぽちっとするだけである程度設定しくれます

  1. 「すべてのアプリケーション」→【新しいアプリケーション】をクリックします
  2. boxを検索し、boxアイコンをクリックします(図は、AzureADギャラリー(プレビュー)を利用している画面です)
  3. 【作成】をクリックします
  4. 左ペインから「シングルサインオン」を選択し、【SAML】をクリックします
  5. 「基本的SAML構成」を編集し、以下のように設定し保存します
    識別子(エンティティID) box.net
    https://sso.services.box.net/sp/ACS.saml2
    応答URL https://sso.services.box.net/sp/ACS.saml2
    サインオンURL https://自社サブドメイン.account.box.net/
  6. フェデレーションメタデータXMLをダウンロードします
  7. Boxを利用させたいユーザーまたはグループを割り当てておきます

box側の設定

  1. boxに管理者でログインします
  2. 「管理コンソール」をクリックします
  3. 「Enterprise設定」→「ユーザー設定」タブを開きます
  4. 少しスクロールし、SSOの設定欄にある【構成】をクリックします
  5. IdPプロバイダから「Azure」を選択し、ダウンロードしたXMLファイルを送信します
  6. Box社側での設定が必要になるため、完了メールがくるまで待ちます
    今回は4時間くらいで登録が完了しました
  7. 設定が完了すると、ステータスが「ファイル認証済み」になります

SSOをテストする

  1. 上記手順と同様に、「Enterprise設定」→「ユーザー設定」タブを開きます
  2. SSO有効モードをONにします
  3. シークレットウインドウで、https://myapplications.microsoft.com/ へアクセスし、AzureAD側で割り当てたユーザーでログインします
  4. boxアイコンをクリックします
  5. 正常にboxへログインできることを確認します

SSOを必須にする

SSOが正常にできることを確認したら、SSOを必須へ変更します

  1. SSO必須モードを有効にします
  2. 警告ダイアログが表示されるので、内容をよく確認し、問題なければチェックを入れて、【すべてのユーザーに対して有効化】をクリックします
  3. 【保存】をクリックします

初回ログイン時のメールやパスワード設定画面を表示させないようにする

この状態で、新規ユーザーがboxへ遷移するとパスワード設定メールがユーザーに送られてしまいます
こういうメールがエンドユーザーに送信されてしまいます

SAMLなのにパスワード設定なんてしてほしくないので、この通知を抑制します
SSO必須モードの時のみ設定が表示されます

  1. 「Enterprise設定」→「通知」→【新規ユーザーアカウント作成メールを送信しない】を有効にします
  2. 【保存】をクリックします

 

プロビジョニング設定

AzureADからユーザーとグループをプロビジョニングする設定を追加します

  1. すべてのアプリケーションからboxを選び、左ペインの【プロビジョニング】をクリックします
  2. プロビジョニングモードを「自動」に変更します
  3. 「管理者資格情報」を展開し、【承認する】をクリックします
  4. boxの管理者アカウントでログインし、【承認】をクリックします
  5. ユーザーグループ共にbox側へ自動作成したい場合はマッピング設定は特にいじらず利用します
  6. 一度【保存】をクリックします
  7. プロビジョニング状態を、「オン」に変更し【保存】をクリックします
  8. しばらくすると現在の状態欄が変化します
    エラー等が発生している場合には、監査ログを確認し問題を解決してください

 

関係ないけど、boxのロゴデータはここからダウンロードできます

ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する

$
0
0

ZoomからMTGが作成されたら、Googleリソースカレンダーに予定を自動登録する

Google App Scriptを設定する

リースカレンダーを作成し、カレンダーIDを確認する

管理コンソールから、Zoom用リソースカレンダーを作成します
カレンダー設定を表示、カレンダーIDを確認します

moment.jsを利用できるようにする

  1. Google Apps Scriptファイルを作成します
  2. リソース→【ライブラリ】をクリックします
  3. [Add a library]欄に、「MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48」と入力し、【追加】をクリックします
  4. 下記のようなスクリプトを作成します
    function doPost(e) {
    
      const sheet = SpreadsheetApp.getActiveSheet(); 
      
      //Zoom Webhookから受信
      const jsonString = e.postData.getDataAsString();
      const data = JSON.parse(jsonString);
      
      var calenderID = "";
      var event = data.event;
      var op = data.payload.operator;
      var startTime = data.payload.object.start_time;
      var duration = data.payload.object.duration;
      var topic = data.payload.object.topic;
     
      //オペレータの値を元にカレンダーを決定する
      switch (op) {
        case 'hoge@example.com':
         calenderID = "hogehoge@resource.calendar.google.com"; //←確認したリソースカレンダーIDを記述
         break;
             
       default:
         break;
      }
      
      var startMTG = Moment.moment(startTime);
      var endMTG = startMTG.add(duration,"minutes");
      var calender = CalendarApp.getCalendarById(calenderID);
      
      var descStr = "Zoom API MTG " + startTime;
        
      //Zoomのeventを取得し、動作を決定する
      switch(event) {
        case 'meeting.created':
          calender.createEvent(topic, new Date(startTime), new Date(endMTG), {description:descStr});
          break;
          
        case 'meeting.deleted':     
          var events = calender.getEventsForDay(new Date(startTime));
          for (var i in events){
            var eventId = events[i].getId();
            var title = events[i].getTitle();
            var desc = events[i].getDescription();
            
            if (title == topic && desc == descStr) {
              var event = calender.getEventById(eventId);
              event.deleteEvent();
            }
            
          }
          break;
          
        default:
    
          break;
          
      }
      
    }
  5. 「公開」→【ウェブアプリケーションとして公開】をクリックします
  6. 「Who has access to the app」を「Anyone,even anonymous」を選択し、【Deploy】をクリックします
  7. 表示されたURLをメモしておきます

Zoom 側でアプリを作成する

  1. Zoom App Marketplaceサイトにアクセスします
  2. 「Develop」→【Build App】をクリックします
  3. 「Webhook Only」の【Create】をクリックします
    ※Createがグレーアウトしている場合には、役割の管理で「デベロッパー向けZoom」をONにします
  4. App Nameを入力し、【Create】をクリックします
  5. 必須項目を入力し、【Continue】をクリックします
  6. 「Event Subscriptions」をONにします
  7. 【Add new event subscription】をクリックします
  8. Subscription Nameに任意の名前を入力し、「Event notification endpoint URL」に事前にメモしたURLを入力します
  9. 【Add events】をクリックします
  10. 以下3つにチェックを入れ、【Done】をクリックします
    Meeting has been created
    Meeting has updated
    Meeting has been deleted
  11. 【Save】をクリックします
  12. 【Continue】をクリックします
  13. 作成が完了します

Zoomからミーティングを作成する

Zoomから新しいミーティングをスケジュールします。
少し待つとGoogleカレンダー側に予定が登録されます

Zoomからスケジュールしたミーティングを削除します
しばらくするとGoogleカレンダーから削除されます
ただし同じ時間の同じタイトルの場合は、両方削除されます

ミーティングの更新はこのスクリプトでは対応していません(笑)

 

jamfでoffice for Mac製品を展開する

$
0
0

jamfでoffice製品を展開する

VPPで配布すりゃいいじゃん 以上!
ではなく、Self ServiceからVPPアプリを設定してもいいのですが、
Office製品は容量が大きいからかよく失敗するんですよね・・・
なので、こっちも容量は大きいですが、pkgファイルで展開させる方法です

Officeパッケージをダウンロードする

https://macadmins.software/ からライセンスにあったファイルをダウンロードします

jamfにダウンロードしたパッケージをを登録する

jamfにログインし、下記手順でパッケージファイルを登録します

  1. 右上にある歯車アイコンをクリックします
  2. 「コンピュータの管理」→【パッケージ】をクリックします
  3. 【新規】をクリックします
  4. 「ファイルを選択」をクリックし、ダウンロードしたパッケージファイルを指定し、【保存】をクリックします
    必要に応じて表示名は変更してください
  5. パッケージが登録されたことを確認します

Office製品をインストールする用のplistファイルを作成する

Office製品のどの製品をインストールするかを指定するplistファイルを作成します。
今回Outlookはインストール不要としてみます

  1. 下記内容でplistを作成します
    インストール不要なアプリ部分をfalseに変更します
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>InstallWord</key>
    	<true/>
    	<key>InstallExcel</key>
    	<true/>
    	<key>InstallPowerPoint</key>
    	<true/>
    	<key>InstallOutlook</key>
    	<false/>
    	<key>InstallOneNote</key>
    	<true/>
    	<key>InstallOneDrive</key>
    	<true/>
    	<key>InstallTeams</key>
    	<true/>
    	<key>InstallAutoUpdate</key>
    	<true/>
    </dict>
    </plist>
  2. 「構成プロファイル」→【新規】をクリックします
  3. 「アプリケーション&カスタム設定」→【構成】をクリックします
  4. ファイル(PLISTファイル)をアップロードを選択します。
    環境設定ドメインに「com.microsoft.office」と入力します
    PLISTファイルのアップロードをクリックし、作成したPLISTファイルを指定し、【保存】をクリックします
  5. 「一般」を選択し、名称にわかりやすい名前を入力します。
  6. 自動的に構成プロファイルをインストールするため、配布方法を「Install Automatically」にしておきます
  7. 「Scope」タブをクリックします
  8. 今回は全台同じ設定でよいので、ターゲットコンピュータで「All Computers」を選択し、【保存】をクリックします
  9. ログを表示させると、プロファイルが適用されたマシンを確認することができます

ポリシーを作成し、Officeを展開する

  1. 「コンピュータ」→「ポリシー」→【新規】をクリックします
  2. 「General」で下記のように設定します(トリガーは要件にあわせて変更してください)
  3. 「パッケージ」→【Configure】をクリックします
  4. 追加したパッケージを見つけ、【追加】をクリックします
  5. 「Scope」タブをクリックし、ターゲットコンピュータを「All Computers」にします
    (必要に応じて展開したいコンピュータ名やグループを選択してください)
  6. Self Serviceアプリに表示させたい場合には、「Self Service」タブをクリックし、
    「Self Serviceでポリシーを使用可能にする」にチェックを入れます
  7. 表示させる名前やアイコン等を指定し、【保存】をクリックします

コマンドラインからポリシー実行をテストする

  1. テストしたい端末に構成プロファイルが適用されていることをログから確認します。
  2. ターミナルアプリを開き、下記コマンドを実行します
    deploy-o365部分はカスタムイベントに入力した文字列と合わせてください
    sudo jamf policy -event deploy-o365
  3. 正常に完了するとOutlook以外のOffice製品がインストールされているはずです。

 

おまけ:Self Serviceからインストールする

ポリシーが適用されたコンピュータ上のSelf Serviceアプリを起動すると、
下記のようにアイコンが増えています。
ユーザーはこの「Deploy Office 365」ボタンを押すだけでインストールが完了します。
(画像はすでにインストール済端末なので、ReInstallになっています)

社員が在宅勤務になり、アプリインストール依頼が多くなってきてもこれ押して!
だけになるので、Self Serviceはとても便利です。
管理者権限を渡してない場合だと特にね・・・そのためだけに出社とかやってられないですよね
JamfやIntune等のMDMを便利に使っていきましょう!

 

Dynamics 365 for Sales取引先企業エンティティに郵便番号から住所検索を実装する

$
0
0

Dynamics 365 for Sales取引先企業エンティティに郵便番号から住所検索を実装する

グローバル製品なので、郵便番号から住所検索は実装されていません。
なので、今回取引先企業エンティティにて、郵便番号を入力したら自動的に住所を表示させる機能を追加してみます
Dynamics365を初めてまだ2週間もたっていないので間違っているところがあってら指摘してもらえると嬉しいです!

この記事ではzipcloudさんを利用させてもらい実装しています

メインフォームのフィールドを変更する

  1.  Dynamics365のアプリを何か開きます(営業ハブとか)
  2. 歯車アイコン→【詳細設定】をクリックします
    (次の画面に遷移するまでちょっと時間かかります・・・)
  3. 「設定」→【カスタマイズ】をクリックします
  4. 【システムのカスタマイズ】をクリックします
  5. この画面が表示されますが、まだ遷移できない画面がある(?)ようなので【キャンセル】をクリックして、
    クラシック表示のまま利用します。
  6. 「エンティティ」を展開し、【取引先企業】を選択します
    「フォーム」→【取引先企業】をクリックします
  7. フィールドエクスプローラーから「住所1:郵便番号」を住所欄にドラッグ&ドロップします
  8. これを複数回繰り返し、下記の状態にします
  9. 【保存】をクリックしたあと、【公開】をクリックします
  10. 取引先企業フォームを開き、変更したフィールドが反映されているかを確認します

スクリプトファイルを用意する

下記のようなスクリプトを用意します。
エラー処理が何もないのと、複数結果があったとしても最初の1件を表示させますが、そのあたりはお好みで修正してください
(というより誰かもっといいもの作ってファイルください(笑))
Xrm.Pageは廃止予定とのことなので、executionContextを利用しています

function onChangeZipcode(executionContext) {
    var formContext = executionContext.getFormContext();
    var zipcode = formContext.getAttribute("address1_postalcode").getValue();

    $.ajax({
        url:"https://zipcloud.ibsnet.co.jp/api/search?&callback=?",
        type:"GET",
        data:{zipcode : zipcode},
        dataType:"json",
        async:false,
        crossDomain:true,
        success:function(data){
            pref = data.results[0].address1;
            city = data.results[0].address2;
            line1 = data.results[0].address3;
            formContext.getAttribute("address1_stateorprovince").setValue(pref);
    formContext.getAttribute("address1_city").setValue(city);
    formContext.getAttribute("address1_line1").setValue(line1);
        }
    })

}

スクリプトファイルをフォームに追加する

  1. jQueryをダウンロードしてきます
  2. 上記と同じように「システムカのスタマイズ」から取引先企業エンティティを開き、取引先企業フォームを開きます
  3. 【フォームのプロパティ】をクリックします
  4. 「フォームライブラリ」の【追加】をクリックします
  5. 【新規】をクリックします
  6. 下記のように設定し、【上書き保存】をクリックします
    名前 わかりやすい名前(jQuery等)
    コンテンツ
    種類 スクリプト(JScript)
    言語 日本語
    ファイルのアップロード ダウンロードしたJQueryファイルを選択

  7. 【公開】をクリックします
  8. 【追加】をクリックします
  9. 追加されたことを確認し、【OK】をクリックします
  10. 同様の手順で事前に作成した、スクリプトファイルも追加します
  11. 以下の図のようになったことを確認します

郵便番号が入力されたらスクリプトが実行されるようにする

  1. フォームのカスタマイズ画面から、「住所1:郵便番号」フィールドをダブルクリックします
  2. 「イベント」タブをクリックします
  3. イベントが「OnChange」になっていることを確認し、【追加】をクリックします
  4. 「依存関係」タブをクリックします
    このスクリプトが必要とするフィールドを依存フィールドへ登録します
  5. 「詳細」タブをクリックし、ライブラリから作成したスクリプトファイルを選択します
  6. 関数に「onChangeZipcode」と入力します
  7. パラメータ項目にある、「実行コンテキストを最初のパラメーターとして渡す」にチェックを入れ、【OK】をクリックします
  8. フィールドのプロパティダイアログを【OK】をクリックし閉じます
  9. 【保存】をクリックした後、【公開】をクリックします

取引先企業フォームで郵便番号入力しテストする

取引先企業フォームの住所1:郵便番号欄に郵便番号を入力し、タブキーで移動します。
番地までのフィールドに値が自動的に入ることを確認します

 

まだまだ慣れないですが、色々とDynamics365についてもアウトプットできればいいなと思います
こういう簡単なやり方すら迷うので、そういうすぐ使えるTips的なものを多く書いていきたいと思います!

 

 


Dynamics 365 の数量フィールドの小数点をなくす方法

$
0
0

自分用メモです。
Dynamics365の数量等が標準だと少数点が5桁になっています
こんな感じ↓

このままだと見づらいので、数量の小数点は0にしたいと思います。
今回変更したい箇所は、営業案件品目エンティティ内の数量です。

  1. システムのカスタマイズを開きます
  2. 「既定のソリューション」から「営業案件品目」を探しクリックします
  3. フィールドから「数量」を探しクリックします
  4. フィールドプロパティの「詳細オプション」を展開します
  5. 「小数点以下表示桁数」を0に変更し、【完了】をクリックします
  6. 【エンティティの保存】をクリックします
  7. 営業案件品目フォームを開いて小数点表示がなくなったことを確認します

 

 

主エンティティの値を子エンティティ側へ簡易登録時に持っていく方法

$
0
0

主エンティティの値を子エンティティ側へ簡易登録時に持っていく方法

タイトルづけが難しいですが、主エンティティの情報を子エンティティ側に自動的に持っていきたいということです。
取引先企業から営業案件を新規作成するときに、主エンティティ(この場合は取引先企業)のフィールド情報を営業案件側へ自動的にもっていくということです

今回は取引先企業エンティティと営業案件エンティティに「取引申請ステータス」フィールドをオプションセットのデータ型で作成しました
両方のエンティティでデータ型が同じである必要があるので注意してください
オプションセットの中身はご自由にどうぞ

フィールドのマッピングを作成する

システムのカスタマイズ画面を開きクラシック画面のままにしておきます。

  1. 営業案件エンティティを検索し、展開します
  2. N:1の関連付けをクリックします
  3. 「opportunity_parent_account」を探し、ダブルクリックします(主エンティティでソートするとわかりやすいかと思います)
    すでに営業案件エンティティと取引先企業エンティティのリレーションがあることがわかります。
  4. 「opportunity_parent_account」をダブルクリックします
  5. 【マッピング】をクリックします
  6. 【新規】をクリックします
  7. ソースエンティティフィールドから「取引申請ステータス」を探しチェックをつけます
    ターゲットエンティティフィールドから「取引申請ステータス」を探しチェックをつけ【OK】をクリックします
  8. 【保存して閉じる】をクリックします

取引先企業Mainフォームに追加したフィールドを追加する

  1. システムのカスタマイズから「取引先企業エンティティ」を開きます(これはエクスペリエンス表示でもOKです)
  2. 「フォーム」タブをクリックし、フォームの種類が「Main」となっている【取引先企業】をクリックします
  3. 追加した取引申請ステータスフィールドを追加したいフォームの場所にドラッグアンドドロップし追加します
  4. 【保存】をクリックし保存が終わったら、【公開】をクリックします

営業案件簡易作成フォームに追加したフィールドを追加する

  1. システムのカスタマイズから「営業案件エンティティ」を開きます(これはエクスペリエンス表示でもOKです)
  2. 「フォーム」タブをクリックし、フォームの種類が「QuickCreate」となっている【営業案件】をクリックします
  3. 追加した取引申請ステータスフィールドを追加したいフォームの場所にドラッグアンドドロップし追加します
  4. ここは追加登録時に設定変更ができないようにしておきたいため、表示オプションを以下のようにしておきます
  5. 【保存】をクリックし保存が終わったら、【公開】をクリックします

取引先企業フォームから新規営業案件を簡易作成し確認してみる

取引先企業フォームから営業案件を簡易作成し、今回設定した取引申請ステータスに取引先企業フォームの取引申請フィールドの内容が自動的にセットされることを確認します

 

新しい営業案件作成フォーム側で取引先企業を設定したら、自動的に取引申請ステータスが表示されるようにしたいなと思いますが
その場合は、たぶんJavaScriptで設定しないといけないと思うのでそれは必要に迫られたら設定を調べてみようかなと思います。
取引先がわからない営業案件はほぼ発生しないと思うので、運用導線はこうだよと教育すればいいかなと思っています。

 

Power AutomateでfreeeのAPIを操作する

$
0
0

Power AutomateでfreeeのAPIを操作する

Power AutomateにカスタムコネクタとしてfreeeのAPIを登録してみます
カスタムコネクタを利用するためには、有償ライセンスが必要となるので注意してください
また今回は、Dynamics365で作成した見積もりをfreee上へ作成させたいため、
見積もり作成に必要な権限のみを付与しているのと、必要なAPIのみ登録していきます

freee開発環境を手に入れる

本番でいきなりやるわけにもいかないので、freeeの開発環境を取得します
無料で提供されているので、とても助かりますね!
手順はこちらに記載されている通りに実施します
https://app.secure.freee.co.jp/developers/demo_companies/description

freeeアプリを作成する

下記URLにアクセスし、ログインします
https://app.secure.freee.co.jp/developers

下記説明ページのとおりにアプリを作成します
https://developer.freee.co.jp/tutorials/starting-api

必要権限を設定する

今回操作するために必要な権限を付与していきます

  1. 「権限」タブをクリックします
  2. 今回必要な権限を以下のように付与しました
    データ種別 権限
    [会計] 勘定科目 参照のみ
    [会計] 事業所 参照のみ
    [会計] 見積書・納品書・請求書・領収書・発注書 参照・更新(ここが書類毎にわけられないのがちょっと微妙)
    [会計] 税区分 参照のみ
  3. 【下書き保存】をクリックします

freeeアプリのクライアントIDやシークレットキーを確認する

  1. 「アプリ基本情報」にある、Client IDとClient Secretをコピーし保存しておきます

freee APIを確認し、事前準備する

  1. こちらにあるファイルをダウンロードします
  2. ダウンロードしたファイルをVisual Studio Code等で開きます
  3. こんな感じにとりあえずなります

※Power AutomateにOpenAPIファイルからインポート機能があるので、そのままインポートしたらいけるかと思ったのですが、色々めんどくさいことになったので必要機能のみ手動登録したほうが早そうと思いました

Power Automateにカスタムコネクタを追加する

  1. Power Automateを開き、「データ」→【カスタムコネクタ】をクリックします
  2. 「カスタムコネクタの新規作成」→【一から作成】をクリックします
  3. コネクタ名を入力し、【続行】をクリックします
  4. ホスト欄に「api.freee.co.jp」と入力し、【セキュリティ】をクリックします
  5. 「OAuth2」を選択し、【定義】をクリックします
  6. IDプロバイダーは「Generic Oauth 2」を選択します
  7. ClientID、Client secret にアプリ情報でメモした、Client IDとClient secretの値を入力します
  8. 下記のようにそれぞれのURLを入力します
    Authorization URL https://accounts.secure.freee.co.jp/public_api/authorize
    Token URL https://accounts.secure.freee.co.jp/public_api/token
    Refresh URL https://accounts.secure.freee.co.jp/public_api/token

  9. 右下にある【定義】をクリックします

アクションを追加する

まずは必ず必要となる事業所ID取得APIを登録してみます

  1. 【新しいアクション】をクリックします
  2. 概要等入力欄が表示されるので、事前に準備しておいたAPI定義ファイルを確認します
    APIリファレンス上はこちらです
    ファイル内を検索すると以下のように定義されています
  3. APIリファレンスからでも、ファイルからでもいいので、概要欄をコピーし、概要に貼り付けます。
    同じ手順で、説明も登録しておきます
  4. 操作ID欄に、ファイル内にあるoperationIdの値をコピーし貼り付けます
  5. 要求にある【サンプルからインポート】をクリックします
  6. 以下のように入力し、【インポート】をクリックします
    動詞 GET
    URL
    /api/1/companies

  7. 要求の内容以下のような表示になります
  8. 右下にある【テスト】をクリックします
  9. 右上にある【コネクタの作成】をクリックします

カスタムコネクタをテストする

  1. 【新しい接続】をクリックします
  2. ここで下記エラーが表示されると思います

コールバックURLを設定する

  1. カスタムコネクタの「セキュリティ」タブをクリックします
  2. リダイレクトURLを確認し控えておきます。

  3. freeeアプリ側の基本情報タブにあるコールバックURLを書き換えます

カスタムコネクタを再度テストする

  1. freeeログイン画面がポップアップで表示されるので、ID、パスワードを入力しログインします
  2. アプリが要求するアクセス権等が表示されるので、内容を確認し問題なければ【許可する】をクリックします
  3. 正常に完了すると、下記のような表示になります
  4. 操作にある、get_companiesを選択し、【テスト操作】をクリックします
  5. 登録が問題なければ、200が返り、応答内容が表示されます
    エラーが発生した場合は、内容を確認し、登録内容を修正してください
  6. ここで確認できたID(事業所ID)は、色々な箇所で利用するので控えておきましょう

 

事業所IDの取得だけですが、一旦これでfreee APIを操作することができました
次は、見積もり書作成に必要なAPI等を定義していってみたいと思います。

 

 

Power AutomateでfreeeのAPIを操作する~その2~

$
0
0

Power AutomateでfreeeのAPIを操作する~その2~

前回の続きです。
前回は事業所IDのみしか取得していないので、今回は見積もり書作成用のAPIを定義します

freee側の取引先IDを有効化する

freeeは標準だと取引先IDが有効になっていないので、freee取引先IDを有効にします
※boardとfreeeを連携させている場合にはこちらの設定は実行しないでください。
連携先のアプリが取引先IDに対応していない場合、連携が失敗するようになるので、連携アプリ側をよく確認してください

  1. 「設定」→【事業所の設定】をクリックします
  2. 「詳細設定」タブをクリックします
  3. 取引先コードを「使用する」に変更し、【保存】をクリックします
  4. 取引先登録画面で、取引先IDが表示されたことを確認します

見積もり書作成APIを定義する

前回作成した、freeeAPIのカスタムコネクタを編集モードで開きます

  1. 「定義」タブをクリックします
  2. 【新しいアクション】をクリックします
  3. 前回と同様に概要や説明を入力します。
    今回は下記設定です
    概要 見積書の作成
    説明 指定した事業所の見積書を作成する
    操作ID create_quotation

  4. 【サンプルからのインポート】をクリックします
  5. 以下のように設定し、【インポート】をクリックします
    動詞 POST
    URL /api/1/quotations
    ヘッダー Content-Type application/json
    accept application/json
    本文 こちらにあるExample Value内の値をすべてコピーし貼り付けます

  6. ヘッダーに表示された、Content-Typeをクリックし、【編集】をクリックします
  7. 規定値に「application/json」を入力し、【戻る】をクリックします
  8. accept側も同様に規定値に「application/json」を入力します
  9. 【コネクタの更新】をクリックします
  10. 「テスト」タブをクリックします
  11. 新しく作成した、「create_quotation」を選択します
  12. 入力フィールドが設定されていることを確認します

 

税区分ID確認用APIを定義する

事業所ID確認用APIと同様に、税区分ID確認用APIを定義しておきます(freee見積もり作成時にIDで入力する必要があるためです)
freeeはUI上で確認できないのがちょっと面倒・・・

こんな設定になります。

company_idはintegerで定義しておく必要があるので、変更します
テストすると、以下のような形で応答があります

勘定科目ID確認用APIを定義する

同様に勘定科目ID確認用APIを定義しておきます

company_idはintegerで定義しておく必要があるので、変更します
テストすると、以下のような形で応答があります

 

ここまでの定義ファイルを以下においてあるので、自己責任でご自由にどうぞ!
https://github.com/khikita/PowerAutomate-freeeAPI

OpenAPIファイルからのインポートで、カスタムコネクタが作成できます
ClinetID、Client secret、Refresh URLはご自身の環境の値を入力し保存してください

Intuneを利用してWindowsログイン画面にセルフパスワードリセットを表示するように構成する

$
0
0

Intuneを利用してWindowsログイン画面にセルフパスワードリセットを表示するように構成する

クラウドネイティブさんのゼロトラスト回を見ていてやってみよう&備忘録として残しておこうということでやってみました

  1. Micorosoft Endpoint Manager admin center(以下MEM)にアクセスします
  2. 「デバイス」→【構成プロファイル】をクリックします
  3. 【プロファイルの作成】をクリックします
  4. プラットフォームから、「Windows10以降」を選択し、プロファイルから「カスタム」を選択し、【作成】をクリックします
  5. 名前欄に適当な名前を入力し、【次へ】をクリックします
  6. 【追加】をクリックします
  7. 名前欄には好きな名前を入力し、他の設定を以下のように入力し、【次へ】をクリックします
    OMA-URI ./Vendor/MSFT/Policy/Config/Authentication/AllowAadPasswordReset
    データ型 整数
    1

  8. スコープタグは必要なタグを選択し【次へ】をクリックします。(ここでは既定を選択しています)
  9. 割り当てでセルフパスワードリセットを表示させたいデバイスグループを選択し、【次へ】をクリックします
  10. 適用性ルールは今回は特に指定せず【次へ】をクリックします
  11. 【作成】をクリックします

適用状態の確認

  1. 作成した構成プロファイルを選択します
  2. モニター欄にある【デバイスの状態】をクリックします
  3. 展開状態が「成功」になったことを確認します
  4. PCを再起動し、PCのログイン画面確認し、「パスワードのリセット」が表示されたことを確認します
    (VM環境のスクショではないため、反射してみづらいかもしれませんがご了承を・・・)
  5. パスワードのリセットをクリックすると、パスワードリセット用画面に切り替わるので、指示に従いパスワードリセットを実行します

 

よいEMSライフを!

 

 

Viewing all 214 articles
Browse latest View live