locked
ASP.NETからRADIUSサーバへの認証 RRS feed

  • 質問

  • 初めて投稿いたします。色々調べたのですが行き詰ってしまいました。

    ASP.NETにて、入力されたID/パスワードを使用して、外部RADIUSサーバへ問い合わせを行いたいのですが、実装方法が見つけられませんでした。
    DirectoryEntryを使用してのLDAPでの実装はできております。
    しかし、仕様的にLDAPではなくRADIUSを使用しての認証を行う必要があり、困っております。

    サンプル、ヒント等、申し訳ありませんがよろしくお願いいたします。

    2014年1月9日 8:58

回答

  • .NET絡みで使用できそうなライブラリ(AIS.NET Radius ・ Radius.NET)もありましたが、PAP認証しか対応していない様で(要CHAP認証)、.NET単体での実装はあきらめました。
    対応としては、PHPで用意されているphp_radius.dllを使用。
    .NETからPHPの認証モジュールを呼び出しステータスを受け取る形で実現できました。
    いろいろと助言をいただき誠にありがとうございました。

    • 回答としてマーク tutopi 2014年1月20日 9:06
    2014年1月20日 9:06

すべての返信

  • マルチポストのようですので、他のポスト先の URL を貼っておきます。

    http://qa.atmarkit.co.jp/q/3427
    http://oshiete1.nifty.com/qa8421789.html

    質問者さんへ>

    マルチポストはマナー的に歓迎されないということはご存知でしょうか?

    2014年1月9日 9:59
  • 申し訳ありませんでした。

    他サイトの質問は削除いたします。

    以降、気を付けます。

    2014年1月9日 10:16
  • IIS にも ASP.NET にも標準の機能としては RADIUS サーバに対してユーザー認証するようなオプションはなさそうです。

    Apache にあるようなプラグインも、自分が調べた限りですが、適当なものはなさそうです。(唯一、RadIIS ( http://www.eurospace.it/shop/radiis/details.asp )というサードパーティ製のものが検索に引っかかりましたが・・・)

    > DirectoryEntryを使用してのLDAPでの実装はできております。

    それは、以下の記事のように、ASP.NET フォーム認証と Active Directory のドメインユーザーを参照するための LDAP 認証コードを組み合わせて認証を受けられるようにしたものですか?

    ASP.NET からの Active Directory ドメイン サービス認証
    http://msdn.microsoft.com/ja-jp/library/ms180890.aspx

    そうであれば LDAP 認証コードの部分を RADIUS Client コードに置き換えて同様なことはできませんか?

    RADIUS Client のコードは自力でゼロから書かなくても、.net radius client でググると .NET Framework ベースのライブラリ、サンプル、ソースコードがいろいろ見つかると思います。

    「LDAPでの実装はできております」というスキルをお持ちのようですので、それを検討されてはいかがですか。

    2014年1月11日 7:03
  • SurferOnWww様

    返信の方、誠にありがとうございました。
    LDAPでの認証は、Active Directoryに対して以下2方法で実現できました。
    他の方の参考になれば幸いですので、掲載しておきます。(VBです。)

    ---ここから----

     Dim _aut As System.DirectoryServices.AccountManagement.PrincipalContext = New System.DirectoryServices.AccountManagement.PrincipalContext(_ldap_CN, _ldap_SV,_ldap_DC)
    if (_aut.ValidateCredentials(_id, _pass)) then
     true=認証OK


    Dim _aut As New DirectoryEntry(_adPath, _id, _pass, AuthenticationTypes.FastBind)
    Dim obj As Object = directoryEntry.NativeObject
     Try~Catchにてエラーにならなければ認証OK
    ---ここまで----

    >.net radius client でググると.NET Framework ベースのライブラリ、サンプル、ソースコードがいろいろ見つかる
    キーワードの指定がまずかったのか、SurferOnWww様のご指摘のキーワードで検索すると
    いろいろと引っかかってきました。ありがとうございます。
    今から使えそうなライブラリ、コード等を模索いたします。
    結果は改めましてご報告させていただきます。

    • 編集済み tutopi 2014年1月14日 1:02
    2014年1月14日 0:57
  • .NET絡みで使用できそうなライブラリ(AIS.NET Radius ・ Radius.NET)もありましたが、PAP認証しか対応していない様で(要CHAP認証)、.NET単体での実装はあきらめました。
    対応としては、PHPで用意されているphp_radius.dllを使用。
    .NETからPHPの認証モジュールを呼び出しステータスを受け取る形で実現できました。
    いろいろと助言をいただき誠にありがとうございました。

    • 回答としてマーク tutopi 2014年1月20日 9:06
    2014年1月20日 9:06