(57)【特許請求の範囲】
【請求項１】
ネットワークデバイスが、証明書アプリケーション情報を証明書発行デバイスに送信する段階であって、前記証明書アプリケーション情報はアプリケーション（ＡＰＰ）の識別子を含む段階と、
前記ネットワークデバイスが、前記証明書発行デバイスによって返送された、前記ＡＰＰの証明書を受信する段階であって、前記証明書は、前記ＡＰＰに従って前記証明書発行デバイスによって生成され、前記証明書は前記ＡＰＰがコントローラのＡＰＩにアクセスする場合に権限認証のために用いられる段階と
を備え、
前記証明書は、（ａ）前記コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である
証明書取得方法。
【請求項２】
前記証明書は、（ａ）前記コントローラの前記Ｎ個のアプリケーションプログラミングインターフェースＡＰＩに対する前記ＡＰＰの操作権限についての前記情報を含み、前記操作権限についての情報は、前記Ｎ個のＡＰＩの識別子及び前記Ｎ個のＡＰＩの各々に対する前記ＡＰＰの操作権限を含む
請求項１に記載の方法。
【請求項３】
前記操作権限についての情報は、Ｍ個のＡＰＩ識別子セットの識別子を含み、前記Ｍ個のＡＰＩ識別子セットの各々の識別子は、前記ＡＰＩ識別子セット内のＫ個のＡＰＩに対する操作権限を識別するために用いられ、Ｍは１より大きいまたはこれに等しい自然数であり、Ｋは０より大きいまたはこれに等しい整数であり、ＫはＮ以下である
請求項１または２に記載の方法。
【請求項４】
前記証明書は、（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの前記操作権限を含み、前記操作権限は、ビットマップを用いて表されている、請求項１から３のうちいずれか一項に記載の方法。
【請求項５】
（ａ）から（ｃ）のうち１又は複数は前記証明書の拡張情報に保持される、請求項１から４のいずれか一項に記載の方法。
【請求項６】
コンピュータプログラムであって、前記コンピュータプログラムは、コンピュータで実行される場合、前記コンピュータに、請求項１から５のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項７】
プロセッサと、前記プロセッサと通信するメモリとを備えるネットワークデバイスであって、前記メモリは命令を記憶し、コンピュータで前記命令が実行される場合、前記コンピュータは請求項１から５のいずれか一項に記載の方法を実行することが可能になる、ネットワークデバイス。
【請求項８】
認証デバイスが、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信する段階であって、前記アクセスリクエストメッセージはデジタル証明書を含み、前記デジタル証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である段階と、
前記認証デバイスが、前記操作権限についての情報に基づく前記１又は複数のＡＰＩに対する前記ＡＰＰの操作権限を決定する段階とを備える
認証方法。
【請求項９】
前記デジタル証明書が（ａ）前記コントローラの前記Ｎ個のアプリケーションプログラミングインターフェースＡＰＩに対する前記ＡＰＰの前記操作権限についての情報を含む場合、前記操作権限についての情報は、前記Ｎ個のＡＰＩの識別子と前記Ｎ個のＡＰＩの各々に対する前記ＡＰＰの操作権限とを含む、請求項８に記載の方法。
【請求項１０】
前記操作権限についての情報はＭ個のＡＰＩ識別子セットの識別子を含み、前記Ｍ個のＡＰＩ識別子セットの各々の識別子は前記ＡＰＩ識別子セット内のＫ個のＡＰＩに対する操作権限を識別するために用いられ、Ｍは１より大きいまたはこれに等しい自然数であり、Ｋは０より大きいまたはこれに等しい整数であり、ＫはＮ以下である、請求項８または９に記載の方法。
【請求項１１】
前記デジタル証明書が（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの前記操作権限を含む場合、前記操作権限はビットマップを用いて表される、請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
（ａ）から（ｃ）のうち１又は複数は、前記証明書の拡張情報に保持される、請求項８から１１のいずれか一項に記載の方法。
【請求項１３】
コンピュータプログラムであって、前記コンピュータプログラムは、コンピュータで実行される場合、前記コンピュータに、請求項８から１２のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項１４】
プロセッサと、前記プロセッサと通信するメモリとを備えるネットワークデバイスであって、前記メモリは命令を記憶し、コンピュータで前記命令が実行される場合、前記コンピュータは請求項８から１２のいずれか一項に記載の方法を実行することが可能になる、ネットワークデバイス。
【請求項１５】
通信インタフェース及び証明書生成モジュールを備える証明書生成デバイスであって、
前記通信インタフェースは、証明書アプリケーション情報を受信し、前記証明書生成モジュールに前記証明書アプリケーション情報を送信するように構成され、前記証明書アプリケーション情報はアプリケーション（ＡＰＰ）の識別子を含み、
前記証明書生成モジュールは、前記通信インタフェースによって送信された前記証明書アプリケーション情報を受信し、前記証明書アプリケーション情報における前記ＡＰＰに従って証明書を生成するように構成され、
前記証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である
証明書生成デバイス。
【請求項１６】
前記証明書が、（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの操作権限についての前記情報を含む場合、前記操作権限についての情報は、前記Ｎ個のＡＰＩの識別子及び前記Ｎ個のＡＰＩの各々に対する前記ＡＰＰの操作権限を含む、請求項１５に記載のデバイス。
【請求項１７】
前記操作権限についての情報は、Ｍ個のＡＰＩ識別子セットの識別子を含み、前記Ｍ個のＡＰＩ識別子セットの各々の識別子は前記ＡＰＩ識別子セット内のＫ個のＡＰＩに対する操作権限を識別するために用いられ、Ｍは１より大きいまたはこれに等しい自然数であり、Ｋは１より大きいまたはこれに等しい自然数であり、ＫはＮ以下である、請求項１５または１６に記載のデバイス。
【請求項１８】
前記証明書が（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの前記操作権限を含む場合、前記操作権限はビットマップを用いて表される、請求項１５から１７のいずれか一項に記載のデバイス。
【請求項１９】
（ａ）から（ｃ）のうち１又は複数は、前記証明書の拡張情報に保持される、請求項１５から１８のいずれか一項に記載のデバイス。
【請求項２０】
通信インタフェース及び認証モジュールを備えるネットワークデバイスであって、
前記通信インタフェースは、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信するように構成され、前記アクセスリクエストメッセージはデジタル証明書を含み、前記デジタル証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下であり、
前記認証モジュールは、前記操作権限についての情報に基づいて前記Ｎ個のＡＰＩに対する前記ＡＰＰの操作権限を決定するように構成される、
ネットワークデバイス。
【請求項２１】
前記デジタル証明書が、（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの前記操作権限についての情報を含む場合、前記操作権限についての情報は、前記Ｎ個のＡＰＩの識別子及び前記Ｎ個のＡＰＩの各々に対する前記ＡＰＰの操作権限を含む、請求項２０に記載のネットワークデバイス。
【請求項２２】
前記操作権限についての情報は、Ｍ個のＡＰＩ識別子セットの識別子を含み、前記Ｍ個のＡＰＩ識別子セットの各々の識別子は、前記ＡＰＩ識別子セット内のＫ個のＡＰＩに対する操作権限を識別するために用いられ、Ｍは１より大きいまたはこれに等しい自然数であり、Ｋは１より大きいまたはこれに等しい自然数であり、ＫはＮ以下である、請求項２０または２１に記載のネットワークデバイス。
【請求項２３】
前記デジタル証明書が、（ａ）前記コントローラの前記Ｎ個のＡＰＩに対する前記ＡＰＰの前記操作権限を含む場合、前記操作権限はビットマップを用いて表される、請求項２０から２２のいずれか一項に記載のネットワークデバイス。
【請求項２４】
（ａ）から（ｃ）のうち１又は複数は、前記証明書の拡張情報に保持される、請求項２２または２３に記載のネットワークデバイス。
【請求項２５】
前記ネットワークデバイスは、前記コントローラ、または前記コントローラの一部である、請求項２２から２４のいずれか一項に記載のネットワークデバイス。
【請求項２６】
前記ネットワークデバイスは、ソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラである、請求項２２から２５のいずれか一項に記載のネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１６年１２月２８日に中国国家知識産権局に出願された「ＣＥＲＴＩＦＩＣＡＴＥ  ＯＢＴＡＩＮＩＮＧ  ＭＥＴＨＯＤ，ＡＵＴＨＥＮＴＩＣＡＴＩＯＮ  ＭＥＴＨＯＤ，ＡＮＤ  ＮＥＴＷＯＲＫ  ＤＥＶＩＣＥ」と題する中国特許出願第２０１６１１２３８７６３．５号に基づく優先権を主張するものであり、当該特許出願はその全体が参照により本明細書に組み込まれる。
【０００２】
本願は、ネットワーク通信技術分野に関するものであり、また、証明書取得方法、認証方法及びネットワークデバイスに関するものである。
【背景技術】
【０００３】
「ソフトウェア定義型の」もの（英語：ｓｏｆｔｗａｒｅ  ｄｅｆｉｎｅｄ  ａｎｙｔｈｉｎｇ、ＳＤＸ）とは、全てのタイプのソフトウェア定義型コンピュータ処理技術の集合である。ＳＤＸでは、ソフトウェアはハードウェアを制御することにおいて主要な役割を果たす。一般的なＳＤＸ技術は、ソフトウェア定義型ネットワーキング（英語：ｓｏｆｔｗａｒｅ‐ｄｅｆｉｎｅｄ  ｎｅｔｗｏｒｋｉｎｇ、ＳＤＮ）、ソフトウェア定義型データセンター（英語：ｓｏｆｔｗａｒｅ‐ｄｅｆｉｎｅｄ  ｄａｔａ  ｃｅｎｔｅｒ、ＳＤＤＣ）、ソフトウェア定義型ストレージ（英語：ｓｏｆｔｗａｒｅ‐ｄｅｆｉｎｅｄ  ｓｔｏｒａｇｅ、ＳＤＳ）などを含む。
【０００４】
ＳＤＸアーキテクチャでは、コントローラは全てのハードウェア機能を集中方式で制御する。さらにコントローラは、アプリケーション・プログラミング・インタフェース（英語：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ、ＡＰＩ）をユーザに提供する。ユーザの様々なアプリケーション（ＡＰＰ）は、ＡＰＩにアクセスして、コントローラにより制御されるネットワークデバイス、セキュリティデバイス、仮想マシンなどを設定および管理すること、またはネットワーク情報を取得することができる。
【０００５】
しかしながら、ＡＰＰはコントローラの外部からのものであり、第３者により開発されてユーザにより用いられる場合があるため。コントローラのＡＰＩの誤用および乱用を防止するように、ＡＰＰの権限を制御する必要がある。
【発明の概要】
【０００６】
本願は、ＡＰＩに対するＡＰＰの操作権限の制御を改善する、証明書取得方法、認証方法およびネットワークデバイスを提供する。
【０００７】
本願の第１態様は、証明書取得方法を提供する。方法によると、ネットワークデバイスは、ＡＰＰを含む証明書アプリケーション情報を証明書生成デバイスに送信し、証明書生成デバイスは、ＡＰＰに従って証明書を生成し、生成された証明書をネットワークデバイスに送信する。証明書は、ＡＰＰがコントローラのＡＰＩにアクセスする場合の権限認証のために用いられる。証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対するＡＰＰの操作権限についての情報、（ｂ）Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子、（ｃ）Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、ここで、Ｎは１より大きいまたはこれに等しい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である。
【０００８】
本願の第２態様は、認証方法を提供する。方法によると、認証デバイスはＡＰＰのアクセスリクエストメッセージを受信し、アクセスリクエストメッセージにおける証明書に保持された操作権限についての情報に基づいて、コントローラのＮ個のＡＰＩに対するＡＰＰの操作権限を決定する。アクセスリクエストメッセージの証明書は、（ａ）から（ｃ）のうち１又は複数を含む。
【０００９】
本願の第３態様は、証明書生成デバイスを提供する。デバイスは、通信インタフェース及び証明書生成モジュールを含む。通信インタフェースは、証明書アプリケーション情報を受信して、証明書生成モジュールに証明書アプリケーション情報を送信するように構成されている。ここで、証明書アプリケーション情報は、アプリケーション（ＡＰＰ）を含む。証明書生成モジュールは、通信インタフェースにより送信された証明書アプリケーション情報を受信して、証明書アプリケーション情報におけるＡＰＰに従って証明書を生成するように構成され、ここで、証明書は、（ａ）から（ｃ）の１又は複数を含む。
【００１０】
本願の第４態様は、ネットワークデバイスを提供する。ネットワークデバイスは、通信インタフェース及び認証モジュールを含む。
【００１１】
通信インタフェースは、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信するように構成されており、ここで、アクセスリクエストメッセージはデジタル証明書を含み、デジタル証明書は（ａ）から（ｃ）のうち１又は複数を含む。認証モジュールは、操作権限についての情報に基づいて、Ｎ個のＡＰＩに対するＡＰＰの操作権限を決定するように構成されている。
【００１２】
本願の証明書取得方法、認証方法およびデバイスによると、コントローラのＡＰＩに対するＡＰＰの操作権限は証明書に保持される。コントローラのＡＰＩにアクセスする場合、ＡＰＰは、認証のために認証デバイスへ証明書を提供する。認証デバイスは、ＡＰＩに対する、証明書に保持される操作権限に基づいて、ＡＰＰがアクセスを申請するＡＰＩを操作する権限をＡＰＰが有しているかを判断する。これにより、ＡＰＩに対する、ＡＰＰの操作権限の制御が容易になる。加えて、方法は単純で、認証プロセスが簡易化されている。
【００１３】
選択的に、証明書は（ａ）コントローラのＮ個のＡＰＩに対するＡＰＰの操作権限についての情報を含み、操作権限についての情報は、Ｎ個のＡＰＩの各々に対する、Ｎ個のＡＰＩの識別子およびＡＰＰの操作権限を含む。このように、認証デバイスは全てのＡＰＩに対するＡＰＰの操作権限についての情報を取得することが可能で、したがって、現在アクセスを申請したＡＰＩを操作する権限をＡＰＰが有するかを判断することができる。
【００１４】
選択的に、操作権限についての情報は、Ｍ個のＡＰＩ識別子セットの識別子を含み、Ｍ個のＡＰＩ識別子セットの識別子の各々は、ＡＰＩ識別子セットにおけるＫ個のＡＰＩに対する操作権限を識別するために用いられており、Ｍは１より大きいまたはこれに等しい自然数であり、Ｋは０より大きいまたはこれに等しい整数であり、ＫはＮ以下である。このように、認証デバイスは、証明書に保持されるＡＰＩ識別子セットに基づいて、アクセスする権限をＡＰＰが有しているＡＰＩ、またはＡＰＩ識別子セットにより識別された、アクセスする権限をＡＰＰが有しているリソースを決定することができる。
【００１５】
選択的に、証明書は（ａ）コントローラのＮ個のＡＰＩに対するＡＰＰの操作権限についての情報を含み、操作権限はビットマップを用いて表される。このように、認証デバイスのストレージリソースの占有は効果的に低減されることができ、認証効率が改善されることができる。
【００１６】
選択的に、（ａ）から（ｃ）のうち１又は複数は証明書の拡張情報に保持される。このように、証明書によってＡＰＰを認証する場合、認証デバイスはコントローラのＮ個のＡＰＩに対するＡＰＰのアクセス権限を決定することができ、その結果、ＡＰＰが現在アクセスを申請するＡＰＩに対するアクセス権限をＡＰＰが有するかを迅速に判断する。
【００１７】
選択的に、ネットワークデバイスはコントローラ、またはコントローラの一部である。ネットワークデバイスは認証サーバであってよい。
【００１８】
選択的に、ネットワークデバイスはソフトウェア定義型ネットワーキング（ＳＤＮ）コントローラである。
【００１９】
本願の別の態様は、ネットワークデバイスを提供する。ネットワークデバイスは、プロセッサ、およびプロセッサと通信するメモリを含む。メモリに記憶されている命令またはコンピュータプログラムを実行する場合、プロセッサは上述の証明書生成方法または認証方法を実行してよい。
【００２０】
本願のさらなる別の態様は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を記憶する。コンピュータで命令が実行されると、コンピュータは上述の証明書生成方法または認証方法を実行することが可能になる。
【００２１】
本願のさらなる別の態様は、命令を含むコンピュータプログラム製品を提供する。コンピュータでコンピュータプログラム製品が実行されると、コンピュータは、上述の証明書生成方法または認証方法を実行することが可能になる。
【図面の簡単な説明】
【００２２】
【図１】本願の実施形態に係るＳＤＮの概略的なネットワーキング図である。
【００２３】
【図２】本願の実施形態に係る証明書取得方法の概略的な方法フローチャートである。
【００２４】
【図３】本願の実施形態に係る、証明書に含まれる、ＡＰＩに対するＡＰＰの操作権限についての情報の概略構成図である。
【００２５】
【図４】本願の実施形態に係る、証明書に含まれる、ＡＰＩに対する別のＡＰＰの操作権限についての情報の別の概略構成図である。
【００２６】
【図５】本願の実施形態に係る、証明書に含まれる、ＡＰＩに対する別のＡＰＰの操作権限についての情報のさらなる別の概略構成図である。
【００２７】
【図６】本願の実施形態に係る証明書の概略構成図である。
【００２８】
【図７】本願の実施形態に係る認証方法の概略的なフローチャートである。
【００２９】
【図８】本願の実施形態に係るポリシーデータエントリの概略構成図である。
【００３０】
【図９】本願の実施形態に係る別のポリシーデータエントリの概略構成図である。
【００３１】
【図１０】本願の実施形態に係る、さらなる別のポリシーデータエントリの概略構成図である。
【００３２】
【図１１】本願の実施形態に係る証明書生成デバイスの概略構成図である。
【００３３】
【図１２】本願の実施形態に係るネットワークデバイスの概略構成図である。
【発明を実施するための形態】
【００３４】
以下では、本願の実施形態における添付図面を参照して本願の実施形態における技術的解決手段を明確に説明する。説明される実施形態は、単に本願の実施形態の一部に過ぎず、その全てではないことは明らかである。
【００３５】
本願において、ＳＤＸは、ＳＤＮ、ＳＤＤＣ、ＳＤＳ、またはソフトウェア定義型インフラストラクチャー（英語：ｓｏｆｔｗａｒｅ‐ｄｅｆｉｎｅｄ‐ｉｎｆｒａｓｔｒｕｃｔｕｒｅ、ＳＤＩ）であってよい。本願の複数の実施形態は、例としてＳＤＮを用いて以下に説明される。しかしながら、本願の複数の実施形態は、ＳＤＤＣ、ＳＤＳ、またはＳＤＩなどのＳＤＸにも応用可能である。
【００３６】
図１に示されるように、ＳＤＮは、コントローラ、およびコントローラに制御されるＸ個のネットワークエレメント、つまりネットワークエレメント１、ネットワークエレメント２、…、およびネットワークエレメントＸを含む。Ｘは１より大きいまたはこれに等しい自然数である。コントローラは、データ制御インタフェースおよびアプリケーション制御インタフェースを含む。ネットワークエレメント１からネットワークエレメントＸの各々は、データ制御インタフェースを用いてコントローラと通信して、コントローラにより送信された転送テーブルを受信して、転送テーブルに従ってパケットを転送する。Ｘは１より大きいまたはこれに等しい自然数である。コントローラによって異なるネットワークエレメントに送信される転送テーブルは、同一であってもよく、異なってもよい。アプリケーション、つまりＡＰＰ１からＡＰＰＺは、アプリケーション制御インタフェースを用いてコントローラと通信する。Ｚは１より大きいまたはこれに等しい自然数である。コントローラはさらに、例えば、ＡＰＩ１からＡＰＩ  ＮのＮ個のＡＰＩを提供する。Ｎは１より大きいまたはこれに等しい自然数である。各ＡＰＩは、１又は複数のリソースを呼び出しのためにアプリケーションに提供し、その結果、アプリケーションはＡＰＩを呼び出すことで対応するリソースを制御することができる。例えば、アプリケーション（ＡＰＰ）１がＡＰＩ１を呼び出す場合、アプリケーション（ＡＰＰ）１は、毎秒１メガビット（Ｍｂｐｓ）の帯域幅を用いてトラフィックを転送することができる。具体的には、ＡＰＰ１からＡＰＰＺは、コントローラのＡＣＩを用いて、コントローラにより提供されるＡＰＩ１からＡＰＩ  Ｎのうちの１又は複数を呼び出し、その結果、コントローラを用いて、コントローラにより制御されるネットワークエレメント１からネットワークエレメントＹを操作する。
【００３７】
選択的に、ＤＣＩがオープンフロー（ＯｐｅｎＦｌｏｗ）プロトコルを用いてデプロイされる。選択的に、ＤＣＩはさらに、パス計算要素通信プロトコル（英語：Ｐａｔｈ  Ｃｏｍｐｕｔａｔｉｏｎ  Ｅｌｅｍｅｎｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、ＰＣＥＰ）、ボーダーゲートウェイプロトコル（英語：Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ、ＢＧＰ）、ネットワークコンフィギュレーション（ＮＥＴＣＯＮＦ）プロトコル、中間システム間連携（英語：Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ、ＩＳＩＳ）プロトコル、およびオープンショーテストパスファースト（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ、ＯＳＰＦ）プロトコルのうち１又は複数を用いてデプロイされてよい。
【００３８】
選択的に、ＡＰＩはオープンスタック（ＯｐｅｎＳｔａｃｋ）ＡＰＩ、オープンフローＡＰＩ、または表現可能な状態の転送（英語：Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ、ＲＥＳＴｆｕｌ）ＡＰＩであってよい。
【００３９】
暗号理論において、証明書は公開キー証明書（英語：ｐｕｂｌｉｃ  ｋｅｙ  ｃｅｒｔｉｆｉｃａｔｅ）である。証明書は、デジタル証明書（英語：ｄｉｇｉｔａｌ  ｃｅｒｔｉｆｉｃａｔｅ）、識別証明書（英語：ｉｄｅｎｔｉｔｙ  ｃｅｒｔｉｆｉｃａｔｅ）、またはセキュリティ証明書とも称される。証明書は、公開キーの所有者の識別を証明するために用いられる電子ドキュメントである。証明書発行機関により発行される証明書は一般に、証明書の有効性、公開キー、対象（証明書所有者）、および署名に用いられるアルゴリズムを含む。証明書の有効性は、証明書の有効時間を表す。公開キーは、メッセージを暗号化するために用いられる公開キーパスワードである。対象（証明書所有者）は、証明書を用いて組織を識別するために用いられる。署名に用いられるアルゴリズムは、証明書の完全性を検証するために用いられる。署名に用いられるアルゴリズムは、証明書が改ざんされていないことを確実にしてよい。アルゴリズムの原理は以下の通りである。証明書を発行するときに、証明書発行機関は、指紋アルゴリズムに従って証明書全体のハッシュ値を計算し、ハッシュ値および証明書の両方を証明書のユーザに送信する。証明書を開くときに、証明書のユーザは指紋アルゴリズムに従って証明書のハッシュ値を計算し、証明書発行機関により発行されたハッシュ値と、計算されたハッシュ値とを比較する。２つのハッシュ値が同一な場合、それは証明書が改ざんされなかったことを示す。この認証プロセスおよび規格は、Ｘ．５０９に規格化されている。
【００４０】
図２に示されるように、本願の証明書取得方法において、ＡＰＰ、例えばＡＰＰ１が、証明書を取得し、コントローラの１又は複数のＡＰＩにアクセスすることによりいくつかの操作を実行しようとする場合、ＡＰＰ１の所有者側のネットワークデバイスは、ＡＰＰ１を証明書発行機関に提示する。証明書発行機関のセキュリティデバイスは、ＡＰＰ１に対してセキュリティ検知を実行し、セキュリティデバイスのセキュリティ検知結果に基づいて（ａ）から（ｃ）のうち１又は複数を決定する。（ａ）コントローラのＮ個のＡＰＩの各々に対するＡＰＰの操作権限、（ｂ）Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子、および（ｃ）Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子。Ｎは１より大きいまたはこれに等しい自然数である。Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下である。Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である。証明書発行機関の証明書生成デバイスは、ＡＰＰ１のための証明書を生成する。証明書は、Ｎ個のＡＰＩに対するＡＰＰ１のアクセス権限、またはＮ個のＡＰＩのうちの、ＡＰＰ１が操作する権限を有するＬ個のＡＰＩのリストを含む。証明書発行機関の証明書発行デバイスは、ＡＰＰ１の所有者に証明書を送信する。証明書発行機関は証明書を作成する組織または人である。証明書発行機関は証明書を作成するのみであり、証明書のユーザではない。
【００４１】
図３に示されるように、証明書において含まれる内容（ａ）は、コントローラのＮ個のＡＰＩの各々に対するＡＰＰの操作権限を含んでよい。図３において、ＡＰＰは、コントローラのＮ個のＡＰＩのうちＡＰＩ１およびＡＰＩ３に対する操作権限を有し、ＡＰＩ２およびＡＰＩ  Ｎに対する操作権限は有しない。Ｎ個のＡＰＩの他のＡＰＩに対する操作権限も、内容（ａ）に含まれる。
【００４２】
図４に示されるように、証明書に含まれる内容は、Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子である。図４において、ＡＰＰがコントローラのＮ個のＡＰＩのうちＡＰＩ１およびＡＰＩ３のみに対する操作権限を有し、コントローラのＮ個のＡＰＩのうち他のＡＰＩに対する操作権限は有しないと仮定すると、証明書は、ＡＰＰが操作するための操作権限を有するＡＰＩ、つまりＡＰＩ１およびＡＰＩ３の識別子のリストのみを含んでよい。
【００４３】
図５に示されるように、証明書に含まれる内容は、Ｎ個のＡＰＩのうち、操作する権限をＡＰＰが有しないＲ個のＡＰＩの識別子である。図５において、ＡＰＰがコントローラのＮ個のＡＰＩのうちＡＰＩ１およびＡＰＩ３のみに対する操作権限を有せず、コントローラのＮ個のＡＰＩのうち他のＡＰＩに対する操作権限は有すると仮定すると、証明書は、ＡＰＰが操作するための操作権限を有しないＡＰＩ、つまりＡＰＩ１およびＡＰＩ３の識別子のリストのみを含んでよい。
【００４４】
選択的に、セキュリティデバイスにより、ＡＰＰ１に対してセキュリティ検知を実行することは、ＡＰＰ１に対してサンドボックステストを実行することを含んでよい。
【００４５】
選択的に、図６に示されるように、証明書はＸ．５０９規格にしたがってよく、以下を含む。
（１）対象（Ｓｕｂｊｅｃｔ）：証明書所有者の区別可能な名称。ここで、命名ルールに関しては、一般にＸ．５００フォーマットが用いられる。
（２）対象の公開キー情報：対象の公開キーおよびアルゴリズム識別子。
（３）証明書発行者（Ｉｓｓｕｅｒ）：証明書発行者の識別情報、および署名を含む。
（４）証明書の有効性（Ｖａｌｉｄｉｔｙ）：証明書の有効な開始および終了時間。
（５）管理情報：証明書のバージョン、暗号化アルゴリズム識別子、およびシリアルナンバーなどの情報。
（６）証明書の拡張情報（Ｅｘｔｅｎｓｉｏｎｓ）：基本的な制約、関連する識別子などを含む。
【００４６】
証明書の拡張情報には、タイプ、デフォルト設定か否か、および値の３つのフィールドを含まれてよい。タイプフィールドは、拡張値フィールドにおけるデータタイプを定義する。タイプは、単純な文字列、値、日付、もしくはイメージ、または複雑なデータタイプであってよい。やり取りを容易にするために、全てのデータタイプは国際的に既知の組織に登録される。「デフォルト設定か否か」フィールドは、ビットフラッグビットである。拡張識別子が「デフォルト設定でない」の場合、それは、対応する拡張値が比較的重要であり、アプリケーションはその情報を無視することができないことを示す。特別な証明書を用いるアプリケーションがこのフィールドの内容を処理することができない場合、アプリケーションは証明書を拒否すべきである。値フィールドは、拡張情報の実際のデータを含む。
【００４７】
（ａ）から（ｃ）のうち１又は複数は、証明書生成デバイスにより生成された証明書の拡張情報に保持されてよい。
【００４８】
図７に示されるように、ＡＰＰ、例えばＡＰＰ１が、コントローラの特定のＡＰＩ、例えばＡＰＩ１にアクセスしようとする場合、認証デバイスは、ＡＰＰ１により提供された証明書が有効かを検証する。ＡＰＰ１により提供された証明書が有効であると認証デバイスが判断した場合、認証デバイスはさらに、証明書に含まれる（ａ）から（ｃ）に基づいて、ＡＰＰ１がアクセスする権限を有する、コントローラの複数のＡＰＩまたはＡＰＩを決定する。認証デバイスは、コントローラ上に位置されてよく、またはコントローラから独立してよく、またはコントローラがＡＰＰの認証を実装する認証デバイスとして機能してよい。
【００４９】
具体的には、証明書に内容（ａ）、すなわちコントローラのＮ個のＡＰＩに対するＡＰＰの操作権限についての情報が含まれる場合、認証デバイスは、内容（ａ）に基づいて、ＡＰＰが操作権限を有するＡＰＩを決定し、ＡＰＩ１が、ＡＰＰが操作権限を有するＡＰＩであるかを判断、すなわち、ＡＰＩ１が、コントローラのＮ個のＡＰＩのうちの１つであるかを判断する。ＡＰＩ１がコントローラのＮ個のＡＰＩのうちの１つの場合、認証デバイスはさらに、ＡＰＩ１に対するＡＰＰ１の権限が「操作権限有り」であるかを判断する。ＡＰＩ１に対するＡＰＰ１の操作権限が「操作権限有り」の場合、認証デバイスはＡＰＰ１がＡＰＩ１を操作することを許可する。ＡＰＩ１に対するＡＰＰ１の操作権限が「操作権限無し」の場合、認証デバイスは、ＡＰＰ１がＡＰＩ１を操作することを許可しない。選択的に、ＡＰＩ１に対するＡＰＰ１の操作権限が「操作権限有り」の場合は、ＡＰＰ１がＡＰＩ１を操作することを許可することに加えて、認証デバイスはさらに、ＡＰＰ１に応答情報を返送してよい。応答情報には、ＡＰＰ１がＡＰＩ１に対する操作権限を有することを示す情報が含まれる。
【００５０】
具体的には、証明書が内容（ｂ）、すなわちＮ個のＡＰＩのうち、ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子を含む場合、認証デバイスは、内容（ｂ）に基づいて、ＡＰＰがアクセスしようとするＡＰＩが内容（ｂ）内にあるかを判断、すなわち、ＡＰＩ１が内容（ｂ）内にあるかを判断する。ＡＰＩ１が内容（ｂ）内にある場合は、認証デバイスはＡＰＰ１がＡＰＩ１に対する操作権限を有すると判断し、ＡＰＰ１にＡＰＩ１を操作することを許可する。ＡＰＰ１が内容（ｂ）内にない場合は、認証デバイスは、ＡＰＰ１がＡＰＩ１に対する操作権限を有しないと判断し、ＡＰＰ１にＡＰＩ１を操作することを許可しない。選択的に、ＡＰＰ１がＡＰＩ１に対する操作権限を有する場合、ＡＰＰ１がＡＰＩ１を操作することを許可することに加えて、認証デバイスはさらに、応答情報をＡＰＰ１に返送してよい。応答情報には、ＡＰＰ１がＡＰＩ１に対する操作権限を有することを示す情報が含まれる。
【００５１】
具体的には、証明書が内容、すなわち（ｃ）Ｎ個のＡＰＩのうち、ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子を含む場合、認証デバイスは、内容（ｃ）に基づいて、ＡＰＰがアクセスしようとするＡＰＩが内容（ｃ）内にあるかを判断、すなわち、ＡＰＰ１がアクセスしようとするＡＰＩ１が内容（ｃ）内にあるかを判断する。ＡＰＩ１が内容（ｃ）内にある場合、認証デバイスは、ＡＰＰ１はＡＰＩ１に対する操作権限を有しないと判断し、ＡＰＰ１がＡＰＩ１を操作することを許可しない。ＡＰＰ１が内容（ｃ）内にない場合、認証デバイスは、ＡＰＰ１がＡＰＩ１に対する操作権限を有すると判断し、ＡＰＰ１がＡＰＩ１を操作することを許可する。
【００５２】
本願の証明書生成方法、認証方法およびコントローラによると、コントローラのＡＰＩに対するＡＰＰの操作権限は証明書に保持される。コントローラのＡＰＩにアクセスする場合、ＡＰＰは、認証のために認証デバイスへ証明書を提供する。認証デバイスは、ＡＰＩに対する、証明書に保持される操作権限に基づいて、ＡＰＰがアクセスを申請するＡＰＩを操作する権限をＡＰＰが有しているかを判断する。これにより、ＡＰＩに対する、ＡＰＰの操作権限の制御が容易になる。加えて、方法は単純で、認証プロセスが簡易化されている。
【００５３】
選択的に、ＡＰＰ１がＡＰＩ１に対する操作権限を有する場合、ＡＰＰ１がＡＰＩ１を操作することを許可することに加えて、認証デバイスはさらに、ＡＰＰ１への応答情報を返送してよい。応答情報には、ＡＰＰ１がＡＰＩ１に対する操作権限を有することを示す情報が含まれる。
【００５４】
選択的に、ＡＰＩのアドレスはユニフォームリソースロケータ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ、ＵＲＬ）であってよい。ＡＰＩリストは、１又は複数の識別子を含んでよい。ＡＰＩ識別子は、シーケンスナンバー、またはＡＰＩまたはＡＰＩのタイプを一意に識別するために用いられ得る別の識別子であってよい。
【００５５】
選択的に、上述の実装例においては、「操作権限」は「呼び出し権限」を含み、「操作」は「呼び出し」を含む。例えば、ＡＰＰ１がＡＰＩ１に対する操作権限を有する場合、それはＡＰＰ１がＡＰＩ１を呼び出すことを許可されたことを示し、ＡＰＰ１がＡＰＩ１に対する操作権限を有しない場合、それはＡＰＰ１がＡＰＩ１を呼び出すことを許可されていないことを示す。もちろん、「操作権限」はさらに、「修正権限」および「置換権限」のうち１又は複数のような、他の可能な内容を含んでよい。「修正権限」は、ＡＰＰがＡＰＩを修正する権限を有することを示す。「置換権限」は、ＡＰＰがＡＰＩを他の内容と置換し得ることを示す。
【００５６】
実装例において、ＡＰＰの証明書は内容（ａ）を含む。ＡＰＩは、ＵＲＬであってよい。証明書により占有されるスペースを減らすために、各ＡＰＩに対するＡＰＰの操作権限は、ビットマップを用いて表されてよい。例えば、ＡＰＰの証明書におけるＡＰＩリスト内の各ＡＰＩは、２進ビットを用いて番号付けられ、２進ビットに対応するＡＰＩに対するＡＰＰの操作権限は、２進番号内の対応するビットの値を用いて表される。例えば、コントローラは、それぞれＡＰＩ１、ＡＰＩ２、ＡＰＩ３、およびＡＰＩ４と識別されている４つのＡＰＩを有すると仮定する。ＡＰＩ１、ＡＰＩ２、ＡＰＩ３、およびＡＰＩ４は２進ビットに順次対応してよく、２進シーケンスＡＢＣＤが取得される。ＡはＡＰＩ１に対応し、またＡはＡＰＩ１の識別子として用いられる。Ａの２進値は、ＡＰＩ１に対するＡＰＰ１の操作権限を表す。ＢＣＤの場合も、Ａと同様である。選択的に、ＡＰＰがアクセス権限を有するＡＰＩに対応する２進ビットは１に設定されてよく、ＡＰＰがアクセス権限を有しないＡＰＩに対応する２進ビットは０に設定され、その逆も同様である。例えば、ＡＰＩ１、ＡＰＩ２、ＡＰＩ３、およびＡＰＩ４に対するＡＰＰのアクセス権限はそれぞれ、４つの２進ビットの値に対応する。ＡＰＰがＡＰＩ１およびＡＰＩ２を操作する権限を有するがＡＰＩ３およびＡＰＩ４を操作する権限は有しない場合、コントローラの全てのＡＰＩに対するＡＰＰの操作権限の値は１１００である。ＡＰＰの証明書は４つのＡＰＩに対するＡＰＰの操作権限の値１１００を含む。コントローラが、ＡＰＰにより提供される証明書に含まれる、コントローラの全てのＡＰＩに対する操作権限の値が１１００であると判断した場合、コントローラは、コントローラのＡＰＩ１およびＡＰＩ２にアクセスする権限をＡＰＰが有するが、コントローラのＡＰＩ３およびＡＰＩ４にアクセスする権限は有しないと判断する。
【００５７】
実装例において、ＡＰＰにより提供される証明書には内容（ｂ）が含まれ、ＡＰＰの証明書には１又は複数の識別子が含まれる。１又は複数の識別子は、ＡＰＰが、１又は複数の識別子により識別されたＡＰＩを操作する権限を有することを示すために用いられる。
【００５８】
実装例において、ＡＰＰにより提供される証明書に内容（ｃ）が含まれる場合、ＡＰＰの証明書には１又は複数の識別子が含まれる。１又は複数の識別子は、ＡＰＰが、１又は複数の識別子により識別されたＡＰＩを操作する権限を有しないことを示すために用いられる。
【００５９】
実装例において、コントローラの複数のＡＰＩは、複数のＡＰＩ識別子セット（ＡＰＩ  Ｓｅｔ）に分割される。各ＡＰＩセットは、１又は複数の識別子を含んでよい。各ＡＰＩセットは、１組の特定のリソースを識別するために用いられてよい。実装例において、ＡＰＰは、ＡＰＩ識別子セット内のＡＰＩ識別子により識別されるＡＰＩに対して同じ操作権限を有する。別の実装例において、ＡＰＰは、ＡＰＩ識別子セット内のＡＰＩ識別子により識別されるＡＰＩに対して異なる操作権限を有してよい。操作権限が異なる複数のＡＰＩは、１つのアクセス権限の組み合わせを形成する。ＡＰＰが、ＡＰＩ識別子セットにアクセスする権限を有する場合、ＡＰＰはアクセス権限の組み合わせを操作する権限を有する。ＡＰＰにより提供される証明書は、１又は複数のＡＰＩセットを含んでよい。例えば、コントローラが４つのＡＰＩを有し、４つのＡＰＩの識別子はそれぞれ、ＡＰＩ１、ＡＰＩ２、ＡＰＩ３、ＡＰＩ４である。ＡＰＩセット１はＡＰＩ１およびＡＰＩ２を含み、ＡＰＩセット２はＡＰＩ３を含み、ＡＰＩセット３はＡＰＩ４を含む。実装例において、ＡＰＩセットに含まれるＡＰＩ識別子のリストは、ＡＰＩセット内のＡＰＩを操作する権限をＡＰＰが有することを示すために用いられる。この場合、ＡＰＰ１がＡＰＩ１およびＡＰＩ２を操作する権限を有するが、ＡＰＩ３およびＡＰＩ４を操作する権限は有しない場合、ＡＰＰ１の証明書はＡＰＩセット１のみを含み、ＡＰＩセット２およびＡＰＩセット３は含まない。別の実装例において、ＡＰＩセットに含まれるＡＰＩ識別子のリストは、ＡＰＰがＡＰＩセット内のＡＰＩを操作する権限を有しないが、ＡＰＩセットを除くＮ個のＡＰＩのＡＰＩを操作する権限を有することを示すために用いられる。この場合、ＡＰＰ１がＡＰＩ１およびＡＰＩ２を操作する権限を有するが、ＡＰＩ３およびＡＰＩ４を操作する権限を有しないと、ＡＰＰ１の証明書はＡＰＩセット２およびＡＰＩセット３のみを含み、ＡＰＩセット１は含まない。
【００６０】
実装例において、コントローラのＡＰＩに対するＡＰＰの操作権限についての、認証デバイスにより取得される情報は、認証デバイス、コントローラ、または認証デバイスと通信する別のストレージデバイスに、ポリシーデータエントリ方式によって保存されてよい。ポリシーデータエントリのフォーマットおよび内容は、図８から図１０に示され、（ａ'）から（ｃ'）のうち１又は複数を含む。（ａ'）ＡＰＰ識別子とコントローラのＮ個のＡＰＩに対するＡＰＰの操作権限との間のマッピング関係。（ｂ'）ＡＰＰ識別子と、Ｎ個のＡＰＩのうちＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子との間のマッピング関係。（ｃ'）ＡＰＰ識別子と、Ｎ個のＡＰＩのうちＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との間のマッピング関係。
【００６１】
図８によると、任意のＡＰＰ、例えばＡＰＰ１の場合、ＡＰＰ１のポリシーデータエントリは、ＡＰＰ識別子、すなわちＡＰＰ１と、コントローラの全てのＡＰＩに対するＡＰＰ１の操作権限とを含む。Ｙは、ＡＰＰ１が、対応するＡＰＩに対する操作権限を有することを示し、ＮはＡＰＰ１がＡＰＩに対する操作権限を有しないことを示す。もちろん、操作権限は他の記号を用いて表されてよい。例えば、ＡＰＰ１がＡＰＩに対する操作権限を有することを示すために数字または文字が用いられ、ＡＰＰ１がＡＰＩに対する操作権限を有しないことを示すために別の異なる数字または文字が用いられる。
【００６２】
図９によると、ＡＰＰ、例えばＡＰＰ１の場合、ＡＰＰ１のポリシーデータエントリはＡＰＰ識別子、すなわちＡＰＰ１および、コントローラの全てのＡＰＩのうち、ＡＰＰ１が操作権限を有するＡＰＩの識別子のリスト、すなわちＡＰＩリスト１を含む。ＡＰＩリスト１には、ＡＰＰ１が操作権限を有するＡＰＩの識別子、すなわちＡＰＩ１、ＡＰＩ２、ＡＰＩ５、ＡＰＩ７が含まれる。
【００６３】
図１０によると、ＡＰＰ、例えばＡＰＰ１の場合、ＡＰＰ１のポリシーデータエントリはＡＰＰ識別子、すなわちＡＰＰ１および、コントローラの全てのＡＰＩのうち、ＡＰＰ１が操作権限を有しないＡＰＩの識別子のリスト、すなわちＡＰＩリスト１が含まれる。ＡＰＩリスト１には、ＡＰＰ１が操作権限を有しないＡＰＩの識別子、すなわちＡＰＩ１、ＡＰＩ２、ＡＰＩ５、ＡＰＩ７が含まれる。
【００６４】
実装例において、認証デバイスは、（ａ'）、（ｂ'）または（ｃ'）のうち１つのみを維持するか、ＡＰＰと、ＡＰＰが操作する権限を有するＡＰＩセットの識別子との間のマッピング関係のみを維持してよい。マッピング関係は、比較的に静的で、したがって、認証デバイスを維持することが簡便である。選択的に、認証デバイスに含まれるポリシーデータエントリは、ポリシーデータのサイズを低減させるためにエージングされてよい。
【００６５】
実装例において、認証デバイスは、サーバなどの独立したネットワークデバイスであってよく、またはコントローラの一部であってよい。
【００６６】
図１１に示されるように、図２に示される証明書生成デバイスは、通信インタフェース１１０２および証明書生成モジュール１１０４を含む。通信インタフェース１１０２は、証明書アプリケーション情報を受信して、証明書アプリケーション情報を証明書生成モジュールに送信するように構成されている。ここで、証明書アプリケーション情報は、アプリケーション（ＡＰＰ）を含む。証明書生成モジュールは、通信インタフェースにより送信された証明書アプリケーション情報を受信して、証明書アプリケーション情報におけるＡＰＰに従って証明書を生成するように構成され、ここで、証明書は、（ａ）から（ｃ）の１又は複数を含む。通信インタフェースはさらに、コントローラのＡＰＩに対するＡＰＰの操作権限についての情報が含まれる証明書を、証明書アプリケーション情報を送信するネットワークデバイスに返送するように構成されてよい。加えて、証明書生成デバイスはさらに、通信インタフェース１１０２により受信されたＡＰＰに対してセキュリティ検知を実行してＡＰＰのセキュリティ特徴を決定し、ＡＰＰのセキュリティ特徴を決定した後、ＡＰＰが操作する権限を有する、コントローラのＡＰＩを決定するように構成されているセキュリティ検知モジュール１１０６を含んでよい。選択的に、証明書生成デバイスはセキュリティ検知モジュール１１０６を含まなくてよい。その代わりに、独立したセキュリティ検知デバイスが証明書生成デバイスの外側に設けられる。セキュリティ検知デバイスは、通信インタフェース１１０２により受信されたＡＰＰに対してセキュリティ検知を実行してＡＰＰのセキュリティ特徴を決定し、ＡＰＰのセキュリティ特徴を決定した後、ＡＰＰが操作する権限を有する、コントローラのＡＰＩを決定する。選択的に、証明書生成モジュール１１０４は中央処理ユニットＣＰＵ、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ‐Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）、またはフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ‐Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡ）を用いて実装されてよい。
【００６７】
図１２に示されるように、図４に示される認証デバイスは、通信インタフェース１２０２および認証モジュール１２０４を含む。通信インタフェース１２０２は、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信するように構成されており、ここで、アクセスリクエストメッセージはデジタル証明書を含み、デジタル証明書は（ａ）から（ｃ）のうち１又は複数を含む。認証モジュール１２０４は、操作権限についての情報に基づいて、Ｎ個のＡＰＩに対するＡＰＰの操作権限を決定するように構成されている。選択的に、認証モジュール１２０４はＣＰＵ、ＡＳＩＣ、またはＦＰＧＡを用いて実装されてよい。選択的に、認証デバイスは、上述の認証方法を実装することが可能な任意のネットワークデバイスであってよい。  認証デバイスは、コントローラから独立したネットワークデバイスであってよく、コントローラの一部であってもよい。認証デバイスがコントローラの一部である場合、認証デバイスは物理的コンポーネントまたはソフトウェアモジュールによって実装されてよい。
【００６８】
本願の別の態様は、ネットワークデバイスを提供する。ネットワークデバイスは、プロセッサ、およびプロセッサと通信するメモリを含む。メモリに記憶されている命令またはコンピュータプログラムを実行する場合、プロセッサは上述の証明書生成方法または認証方法を実行してよい。
【００６９】
本願のさらなる別の態様は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を記憶する。コンピュータで命令が実行される場合、コンピュータは上述の証明書生成方法または認証方法を実行することが可能になる。
【００７０】
本願のさらなる別の態様は、命令を含むコンピュータプログラム製品を提供する。コンピュータでコンピュータプログラム製品が実行される場合、コンピュータは、上述の証明書生成方法または認証方法を実行することが可能になる。
【００７１】
上述の実施形態の全てまたは一部は、ソフトウェア、ハードウェア、ファームウェアまたはこの任意の組み合わせによって実装されてよい。実施形態を実装するためにソフトウェアが用いられる場合、実施形態の全てまたは一部は、コンピュータプログラム製品の形で実装され得る。コンピュータプログラム製品は、１つ又は複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータにロードされ実行される場合、本願の実施形態において説明された手順または機能の全てまたは一部が生成される。コンピュータは、汎用のコンピュータ、専用のコンピュータ、コンピュータネットワーク、または別のプログラマブル装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、またはコンピュータ可読記憶媒体を用いて伝送されてよい。コンピュータ命令は、ウェブサイトステーション、コンピュータ、サーバ、またはデータセンターから、別のウェブサイトステーション、コンピュータ、サーバ、またはデータセンターに有線を介して（例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線（ＤＳＬ））、または無線を介して（例えば、赤外線、電波、またはマイクロ波）伝送されてよい。コンピュータ可読記憶媒体は、コンピュータによりアクセスすることが可能な、任意の利用可能な媒体であってよい。例えば、コンピュータ命令は磁気媒体（例えば、フロッピ（登録商標）ディスク、ハードディスク、またはテープ）、光媒体（例えば、ＤＶＤ）、または半導体媒体（例えばソリッドステートディスクＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ（ＳＳＤ））を用いて記憶または伝送されてよい。
【００７２】
本願において提供されるいくつかの実施形態では、開示されるシステム、装置、および方法が他の方式で実装され得ることを理解されたい。例えば、説明されている装置実施形態は、単なる例である。例えば、ユニットまたはモジュールの区分は、単なる論理的機能の区分であり、実際の実装の間には他の区分であり得る。例えば、複数のユニットまたはコンポーネントは別のシステムに一体化または統合されてよく、またはいくつかの特徴が無視されるか、または行われなくてよい。加えて、提示または記載された相互連結または直接連結または通信接続は、いくつかのインタフェースを用いて実装されてよい。装置またはユニット間の間接連結または通信接続は、電子、機械、または他の形で実装され得る。
【００７３】
別個の部分として説明されるユニットは、物理的に別個であってもなくてもよく、ユニットとして提示される部分は、物理的ユニットであってもなくてもよく、１箇所に位置してもよく、または複数のネットワークユニット上に分散されてもよい。当該ユニットの一部または全ては、実施形態の解決手段の目的を達成するための実際の要件に基づいて選択されてよい。
【００７４】
加えて、本願の実施形態における機能ユニット／モジュールは、１つの処理ユニット／モジュールに統合されてよく、またはユニット／モジュールの各々は物理的に単独で存在してよく、または２つ以上のユニット／モジュールが１つのユニットに統合されてよい。統合されたユニットは、ハードウェアの形で実装されてよく、またはソフトウェア機能ユニットに加えてハードウェアの形で実装されてよい。例えば、認証モジュール、証明書生成モジュールなどは全て、ＣＰＵ、ＡＳＩＣ、またはＦＰＧＡを用いて実装されてよい。
【００７５】
上述の統合されたユニットがソフトウェア機能ユニットの形で実装される場合、統合されたユニットはコンピュータ可読記憶媒体に記憶されてよい。ソフトウェア機能ユニットは記憶媒体に記憶され、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワークデバイスなどであってよい）に、本願の実施形態において説明された方法のいくつかの段階を実行するように命令するためのいくつかの命令を含む。上述の記憶媒体は、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ、略してＲＯＭ）、ランダムアクセスメモリ（Ｒａｎｄｏｍ‐Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、略してＲＡＭ）、磁気ディスクまたはコンパクトディスクなどのプログラムコードを記憶することが可能な様々な媒体を含む。
【００７６】
上述の記載は本願の単なる実装例に過ぎないが、本願の保護範囲を限定することを目的としているものではない。本願に開示される技術的範囲内で当業者により容易に想到されるあらゆる変形または置換が、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
［項目１］
ネットワークデバイスが、証明書アプリケーション情報を証明書発行デバイスに送信する段階であって、前記証明書アプリケーション情報はＡＰＰを含む段階と、
前記ネットワークデバイスが、前記証明書発行デバイスによって返送された、前記ＡＰＰの証明書を受信する段階であって、前記証明書は、前記ＡＰＰに従って前記証明書発行デバイスによって生成され、前記証明書は前記ＡＰＰがコントローラのＡＰＩにアクセスする場合に権限認証のために用いられる段階と
を備え、
前記証明書は、（ａ）前記コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きいまたはこれに等しい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である
証明書取得方法。
［項目８］
認証デバイスが、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信する段階であって、前記アクセスリクエストメッセージはデジタル証明書を含み、前記デジタル証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きいまたはこれに等しい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である段階と、
前記認証デバイスが、前記操作権限についての情報に基づく前記１又は複数のＡＰＩに対する前記ＡＰＰの操作権限を決定する段階とを備える
認証方法。
［項目１５］
通信インタフェース及び証明書生成モジュールを備える証明書生成デバイスであって、
前記通信インタフェースは、証明書アプリケーション情報を受信し、前記証明書生成モジュールに前記証明書アプリケーション情報を送信するように構成され、前記証明書アプリケーション情報はアプリケーション（ＡＰＰ）を含み、
前記証明書生成モジュールは、前記通信インタフェースによって送信された前記証明書アプリケーション情報を受信し、前記証明書アプリケーション情報における前記ＡＰＰに従って証明書を生成するように構成され、
前記証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きいまたはこれに等しい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下である
証明書生成デバイス。
［項目２０］
通信インタフェース及び認証モジュールを備えるネットワークデバイスであって、
前記通信インタフェースは、アプリケーション（ＡＰＰ）のアクセスリクエストメッセージを受信するように構成され、前記アクセスリクエストメッセージはデジタル証明書を含み、前記デジタル証明書は、（ａ）コントローラのＮ個のアプリケーションプログラミングインターフェースＡＰＩに対する、前記ＡＰＰの操作権限についての情報と、（ｂ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有するＬ個のＡＰＩの識別子と、（ｃ）前記Ｎ個のＡＰＩのうち、前記ＡＰＰが操作する権限を有しないＲ個のＡＰＩの識別子との（ａ）から（ｃ）のうち１又は複数を含み、Ｎは１より大きいまたはこれに等しい自然数であり、Ｌは１より大きいまたはこれに等しい自然数であり、ＬはＮ以下であり、Ｒは１より大きいまたはこれに等しい自然数であり、ＲはＮ以下であり、
前記認証モジュールは、前記操作権限についての情報に基づいて前記Ｎ個のＡＰＩに対する前記ＡＰＰの操作権限を決定するように構成される、
ネットワークデバイス。
【図１】
0006940240.tif 000002
【図２】
0006940240.tif 000003
【図３】
0006940240.tif 000004
【図４】
0006940240.tif 000005
【図５】
0006940240.tif 000006
【図６】
0006940240.tif 000007
【図７】
0006940240.tif 000008
【図８】
0006940240.tif 000009
【図９】
0006940240.tif 000010
【図１０】
0006940240.tif 000011
【図１１】
0006940240.tif 000012
【図１２】
0006940240.tif 000013