Microsoft365 の先進認証(OAuth)によるアクセス方法


もいか  2022-07-06 16:18:04  No: 150300  IP: [192.*.*.*]

Delphi で開発を行っているのですが、今度 Microsoft365 の先進認証(OAuth)を使って、
メールの送受信を行いたいと思っています。

Indy ライブラリを使って実現できるのではと思っていますが、
取っ掛かりがつかめず苦労しています。
参考になる URL や参考書などございましたら教えていただけないでしょうか。

ふわっとした質問ですいません。
想定している環境は以下のとおりです。

Delphi 11.1
Indy 10.6.2.0 (Delphi 11.1 付属のもの)
メール受信 POP (POP が難しい場合は IMAP)
メール送信 SMTP

以上です。
よろしくお願いいたします。

編集    削除
take  2022-07-07 08:01:11  No: 150301  IP: [192.*.*.*]

GMailを使用したIMAP4による手動受信処理を作ったことがある程度なのですが

Delphiにも「REST.Authenticator.OAuth」というのが用意されていますが
肝心の認証はサービスごとに自分で実装するようです
Delphiのヘルプ
https://docwiki.embarcadero.com/Libraries/Sydney/ja/REST.Authenticator.OAuth.TOAuth2Authenticator

手動で認証に成功したという事例も少ないです
telnetでOAuth認証に成功した例
http://blog.tomoattori.info/article/160440281.html

試しにGMailにアクセスできないかやってみたことはあるのですが
Gmailの認証用Webサイトにhttpsでアクセスすることを求められて
そこに手動でIDとパスが入れられれば後は通るっぽいのですが
それだと自動での処理が出来ないというところで断念しています。

参考になれば幸いです。

編集    削除
igy  2022-07-07 09:26:53  No: 150302  IP: [192.*.*.*]

使ったことは、ないのですが、
GetItには、
IPWorks 2020 Delphi Edition 
https://getitnow.embarcadero.com/IPWorks-20.0.7933/
があり、
/n software inc. のサイトには、
OAuth Component
https://cdn.nsoftware.com/help/IPF/dlp/OAuth.htm
とか、あるようです。

編集    削除
もいか  2022-07-07 09:30:56  No: 150303  IP: [192.*.*.*]

takeさん

ご助言ありがとうございます。
OAuth認証、かなり手強そうなことがわかりました。
とはいえ、何とか自動で処理できるようにしたいと思いますので、
ちょっとあがいてみたいと思います。

インターネット・書籍の情報が少ない中、
リプライいただき本当にありがとうございました。
参考にさせていただきます。

編集    削除
もいか  2022-07-07 09:39:23  No: 150304  IP: [192.*.*.*]

igyさん

返信ありがとうございます。

IPWorks 2020 Delphi Edition 、いけそうな記述がありますね。
Indyなど標準コンポーネントで難しい場合、検討してみます。
お知らせ有難うございます。
参考にさせていただきます。

編集    削除