CognitoのUserAttributesをC#から取得

Cognito C#言語から接続

Amazon Cognitoは、OpenID Connect などのエンタープライズ ID プロバイダーを通してサインインすることができるAWS内のサービスです。Cognitoのユーザープールにユーザーを追加すると、ユーザー内にUserAttributes情報を収納できます。そのCognito UserAttributesをC#言語を使ってユーザーにログインしUserAttributesを取得するコード例です。

パッケージインストール

Visual Studio C#で新規プロジェクトを作成し、下記のようにnugetからAWSSDKの必要なパッケージをインストールします

Install-Package AWSSDK.Core -Version 3.7.5.9
Install-Package AWSSDK.CognitoIdentity -Version 3.7.0.110 #←これは要らないかも
Install-Package AWSSDK.CognitoIdentityProvider -Version 3.7.1.82
Install-Package Amazon.Extensions.CognitoAuthentication -Version 2.2.2

AWSコンソール画面から[プールID]と[アプリクライアント ID]を用意

下のようにAWSコンソール画面(ブラウザ)などからユーザープールを選択し[プールID]と[アプリクライアントID]情報を取得します。

プールID取得方法
[ユーザープール]→[全般設定]→[プールID]
アプリクライアントID取得方法
[ユーザープール]→[アプリクライアント]→[アプリクライアントID]

コード例

usingで必要なのは下記の3行です

using Amazon;
using Amazon.CognitoIdentityProvider;
using Amazon.Extensions.CognitoAuthentication;
private void button1_Click(object sender, EventArgs e)
{
	string poolId = "ap-northeast-1_さきほど用意したプールID";
	string clientId = "さきほど用意したアプリクライアントID";
	string userId = textBox1.Text; //Cognitoでユーザー追加設定したユーザー名
	string passWd = textBox2.Text; //Cognitoでユーザー追加設定したパスワード
	AmazonCognitoIdentityProviderClient amazonCognitoIdentityProviderClient1 = new(new Amazon.Runtime.AnonymousAWSCredentials(), RegionEndpoint.APNortheast1);
	CognitoUserPool cognitoUserPool1 = new(poolId, clientId, amazonCognitoIdentityProviderClient1);
	CognitoUser cognitoUser1 = new(userId, clientId, cognitoUserPool1,amazonCognitoIdentityProviderClient1);

	InitiateSrpAuthRequest initiateSrpAuthRequest1 = new()
	{
		Password = passWd
	};
	var authResponse = cognitoUser1.StartWithSrpAuthAsync(initiateSrpAuthRequest1).ConfigureAwait(true).GetAwaiter();        
	var _idToken = authResponse.GetResult().AuthenticationResult;
	var _getUserResponse = cognitoUser1.GetUserDetailsAsync().ConfigureAwait(false).GetAwaiter();
	var _userResponse = _getUserResponse.GetResult();
	textBox3.Clear();
	_userResponse.UserAttributes.ForEach(_v => {
		textBox3.Text += string.Format("{0}={1}\r\n", _v.Name, _v.Value);
	});
}

async / awaitは利用していませんが、非同期処理実装も可能です。AWSSDKの場合GetAwaiter() / GetResult()を使います。

Amazon Cognito ユーザーデータ取得画面

Microsoft Teams チーム作成方法

Microsoft アカウントを作成する

Microsoft アカウントが無い場合、アカウント作成する必要があります。下のURLからアカウントを作成します。

https://signup.live.com/

Get a new email address]を選択するとメールアドレスも作ることができます。

アカウント名を入力し「outlook.com」「hotmail.com」を選びます。[Next]ボタンで次の項目へ

つぎにパスワードを作成し「Next」ボタンで次へ

姓・名を入力して[Next]ボタンで次へ

リージョンと生年月日を入力

上の英数が書いたイメージと同じ内容を入力する。失敗の場合[New]ボタンをクリックし再入力する。入力が完了できたら[Next]をクリックして完了です。

Microsoft アカウントが作成できました。アカウントは下記URLから確認することもできます。

https://account.microsoft.com/

Microsoft Teams [サインアップ]

https://www.microsoft.com/ja-jp/microsoft-365/microsoft-teams/group-chat-software

上のURLに接続し、[無料でサインアップ]ボタンをクリックします。

先程作成したMicrosoft アカウントのメールアドレスを入力します。

Teamsをどのように使用しますか?という質問項目がでるので「学校向け」もしくは「仕事向け」を選択して[次へ]をクリックします。

仕事向け]のラジオボタンを選択した場合[姓・名]確認と[会社名]が出てきますので会社名を入力します。

これでMicrosoft Teamsのセットアップが完了しました。

アプリをダウンロード代わりにWebアプリを使用]選択ボタンが表示されます。

上記のように「テスト1」という会社名のTeamsが完成しました。

会社名を間違ってしまった場合

Microsoft Teamsで会社名を間違えて登録した場合、下のURLにアクセスします

https://aad.portal.azure.com/

下のような画面がでますので左のメニュー[Azure Active Directory]の[プロパティ]をクリックするとプロパティ画面が表示されます。そこに[名前]項目がありますのでそこを項目を変更し最後に保存します。

Microsoft Teams ユーザー招待

Teams画面左下の[ユーザーを招待]をクリックします。

画面中央に招待方法が表示されます。

メールで招待]をクリック

メールアドレスを入力するリストが表示されるので相手のメールアドレスを入力し右下の[招待状を送信]をクリックする

相手のメーラー側にマイクロソフトからメールが届きます📧

Join Teams]をクリックします。

ブラウザが開き「アクセス許可の確認」画面が出ます。[承諾]をクリックします。

相手のTeamsに「テスト2」が追加されました。右上にドロップダウンリストがありそこで「会社名」を切り替えることができます。

切り替えると、それぞれのTeamsが表示されます。切り替え中は別チームの更新が見れないので、複数のチームがある場合こまめに切り替える必要があります。

【SQL Server】 肥大化した.ldfファイルを削除

SQL Serverデータベースを新規作成すると、標準設定では復旧モデルが「完全」になっています。
復旧モデルが「完全」の場合、.ldfファイルにログが貯まる仕組みです。 重要なデータで復旧が必要な場合この.ldfファイルは重要ですが、 消えても問題無いデータの場合、データベースの復旧モデルは「単純」に設定すると.ldfファイルは溜まりません

Microsoft SQL Server Management Studioから設定する場合で試してみました。

変更方法はデータベースを選択し右クリック後[プロパティ]でダイアログが表示されます。
[オプション|復旧モデル]にコンボボックスがあるので、「単純」に変更します。

ここで「単純」に変更し再起動してもldfファイルサイズの変化はありません。
データベースの圧縮が必要です。 データベースプロパティ変更したときのように、データベースを選択し右クリックし次は、[タスク|圧縮|ファイル]を選択します。

[ファイルの圧縮]という名称のダイアログが表示されます。 ダイアログ中央右の[ファイルの種類]「ログ」に変更し、すこし下の[圧縮のアクション|未使用領域の開放前にページの再構成をする]ラジオボタン選択します。
[圧縮先のファイル]サイズを少なく指定しましょう(「2MByte」など)

最後に[OK]ボタンでファイルの圧縮が実行されます。

さいごに

この手順は、Microsoft SQL Server Standard (64-bit) 12.0.4232.0で試しました。