AzureのVNETとAWSをVyOSでつなぐ

なんとなくお蔵入りしてたネタを引っ張りだしてきました。

AzureのVNETと動的ゲートウェイと、AWS上のVyOSなVPNルーターを使ってVPN接続しようというネタです。出来上がる環境はこんな感じ。

image

IPアドレスとかは例です。あと数か月以上前のネタなのでちょっと変わってる箇所あるかも(VyOSのAMIのバージョンとか)しれませんが適宜読み替えてください。それから簡易な接続なので本運用とかには使わない方がいいかもですね。なんにせよ自己責任で。

続きを読む

Azure Update (2015.02.19)

はいはいUpdateですよー。

続きを読む

Office 365の同期環境下でパスワード変更ができない

Office 365ネタ。

DirSyncでアカウント同期してるテナントが対象です。今月入ってからぐらいでどうも同期ユーザーのパスワードをOffice 365側で変更しようとするとエラーになるっぽいです。

一応、発生した環境はこんな感じ

  • オンプレにActive Directoryドメインがある
  • DirSync使ってアカウント同期をしてる
  • パスワードはO365側で変更する(初回ログイン時とかで)
  • Active Directoryドメイン側とパスワード同期されてなくても良い運用(※特殊)

初回ログイン時に初期パスワードいれてパスワード変更画面にて新しいパスワードを指定すると以下のような画面になります。

error

※普通にパスワード変更しようとしてもエラーになります。

image

謎い。いろいろ切り分けると同期してないユーザー(O365側で作成したユーザー)は問題ない。。で、聞くところによるとAD同期してる場合はAD側でパスワード変更してくれという話。そんな馬鹿な。。。前までいけてたのに。

あと同期をもう一度やってくださいとか怖いことをおっしゃるので、やむなしということでDirSyncからパスワードのライトバックができるAADSyncのほうにバージョンアップしようと思います。(さすがにプレビューのAADConnectは入れない)

さくっとDirSyncをアンインストールします。

FIMとか関連するコンポーネントもアンインストールしてくれるようです。(SQLサーバーはそのまま残ってた)

アンインストール後、AAD Syncをインストールします。インストール後、O365テナントのアカウントID/Passを入力します。

image

オンプレActive Directoryの資格情報を入力して「Add Forest」して追加してからNextします。

image

オプション機能で「Password write-back」にチェックをいれます(パスワード同期は環境に応じてお好きに)

image

image

だいたいこんな感じです。セットアップ後は一度サインアウトしましょう(管理グループに入れられるけどそのままだと権限足らないので)

手動同期は C:\Program Files\Microsoft Azure AD Sync\Bin\DirectorySyncClientCmd.exe delta という感じで実行すると良しなにしてくれます。

とか思ってやってみたらやっぱりエラー。結局パスワードのWrite-backはというかセルフリセットはAzure AD Premiumの機能ですとかそんなオチ。でもともとの話だったO365側のパスワード変更できない云々は未解決\(^o^)/

ただのDirSyncからAADSyncへの移行ネタになってしまった。

|SR| λ…………トボトボ

Get-AzureVMでout of range

なんかAzure PowerShellのGet-AzureVMとかGet-AzureDeploymentとかで得られる応答の一部要素(PersistentVMDowntimeのEndTime)でDateTime.MaxValueなISO8601形式の値(9999-12-31T23:59:59Z)が入ってるようで、こいつを日本みたいなUTCにプラスするタイムゾーン圏内でDateTime.Parseしようとして例外吐いてるみたいです。

> get-azurevm
get-azurevm : The DateTime represented by the string is out of range.
At line:1 char:1
+ get-azurevm
+ ~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-AzureVM], FormatException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.GetAzureVMCommand

仮想マシンをシャットダウンしたり再起動したりすると、EndTimeの値がまともな値になるのかちゃんと動作するようです。いやいや。。。

Management API側の挙動が変わったのかなー?(こんな値入ってたっけ?)という気がしますが、仮想マシンの再起動とかフザケンナという人はAzure PowerShellを実行するPCのタイムゾーンをUTCとかPSTにして凌ぎましょう。(なんとなくMSには報告済み)

DateTimeOffset使えば問題なさげだけど。

D:\> [System.DateTime]"9999-12-31T23:59:59Z"
Cannot convert value "9999-12-31T23:59:59Z" to type "System.DateTime". Error: "The DateTime repres ented by the string is out of range."
At line:1 char:1
+ [System.DateTime]"9999-12-31T23:59:59Z"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastParseTargetInvocationWithFormatProvider

D:\> [System.DateTimeOffset]"9999-12-31T23:59:59Z"


DateTime      : 9999/12/31 23:59:59
UtcDateTime   : 9999/12/31 23:59:59
LocalDateTime : 9999/12/31 23:59:59
Date          : 9999/12/31 0:00:00
Day           : 31
DayOfWeek     : Friday
DayOfYear     : 365
Hour          : 23
Millisecond   : 0
Minute        : 59
Month         : 12
Offset        : 00:00:00
Second        : 59
Ticks         : 3155378975990000000
UtcTicks      : 3155378975990000000
TimeOfDay     : 23:59:59
Year          : 9999

やれやれです。

2015.02.17 9:56 追記

Management REST API側で吐き出す値を修正したらしいです。とりあえず動作するようになりました。

同期環境下のOffice 365でExchange属性を弄りたい

あるよね。そういうこと。

オンプレに

  • Active Directoryドメインはある
  • Exchange Serverはない。過去も含めてない。
  • Active Directory SyncとかでOffice 365とアカウントを同期させてる

という環境があるとします。

※ちなみにオンプレ環境は全部Windows Server 2012 R2とします

で、ちょっとアドレス帳から非表示にしたいなーとか思うと

image

はい。ソウデスネ。

もちろんオンプレのADにはそんな(Exchange関連の)属性ありません。

image

どうしましょうか?素直なのは他の属性の値を使ってAADSyncとかのマッピングをいじることです。(ただこれも直感的に何をしてるのかわかりにくいのとSyncするツールに依存しちゃうのでどうなんだろう)
ということで今回は少し斜め上の対応をしてみましょう。

そう、Exchangeスキーマの拡張だけしてしまいましょう。

身もふたもない。

まず評価版のExchange Server 2013をダウンロードしましょう。

ダウンロードしたEXEを実行してファイルを展開します。その後以下のコマンドでSetup.exeを起動してスキーマ拡張だけ行います。(※もちろんバックアップとかその辺ちゃんと考えてください)

Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

image

※細かい話はこの辺参照

完了後、スキーマが拡張されたので後はお好きにどうぞ。

image

image

やりました。